Power tool including an output position sensor

ABSTRACT

A power tool including a motor and an impact mechanism. The impact mechanism is coupled to the motor and includes a hammer driven by the motor, and an anvil positioned at a nose of the power tool, and configured to receive an impact from the hammer. The power tool also includes a sensor assembly positioned at the nose of the power tool, and an electronic processor. The sensor assembly includes an output position sensor configured to generate an output signal indicative of a position of the hammer or the anvil. The electronic processor is coupled to the output position sensor and to the motor, and is configured to operate the motor based on the output signal from the output position sensor.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/785,823, filed Feb. 10, 2020, which is a continuation of U.S. patentapplication Ser. No. 15/441,953, filed on Feb. 24, 2017, now U.S. Pat.No. 10,583,545, which claims priority to U.S. Provisional PatentApplication No. 62/299,871, filed on Feb. 25, 2016, and claims priorityto U.S. Provisional Patent Application No. 62/374,235, filed on Aug. 12,2016, the entire contents of all of which are hereby incorporated byreference.

BACKGROUND

The present invention relates to monitoring a position of an anvil in animpacting tool.

SUMMARY

In some embodiments, a power tool is operated to achieve a desiredoutput characteristic. For example, the power tool may be operated toachieve a particular torque, nut tension, etc. In some embodiments, aconsistent torque output is generated over repeated trials of the sameapplication by achieving a consistent number of impacts delivered to theanvil. In such embodiments, the power tool closely approximates thebehavior of torque specific impact drivers and wrenches withoutrequiring the use of a torque transducer. The more accurately the powertool determines the number of impacts delivered to the anvil, the moreaccurately the power tool will achieve a specific torque, or otheroutput characteristic.

By monitoring a direct measurement of the anvil position, the power toolcan detect impacts using an impact detection algorithm, and the detectedimpacts may be used in, for example, a blow counting mode and anadvanced blow counting mode. In these and other modes, the power toolmay stop, adjust, or otherwise control a motor based on the number ofimpacts detected. Therefore, the power tool is able to limit the tool'simpacts to a consistent number based on the position of the anvil. Thepower tool may also implement an angular distance mode, a turn-of-nutmode, and a constant energy mode by directly monitoring the position ofthe anvil.

In one embodiment, the invention provides a power tool including ahousing, an anvil supported by the housing, a motor positioned withinthe housing, and a hammer mechanically coupled to and driven by themotor. The hammer is configured to drive the anvil and deliver aplurality of impacts to the anvil. The power tool also includes anoutput position sensor. The power tool also includes a controllerelectrically coupled to the motor and to the output position sensor. Thecontroller is configured to monitor an anvil position based on theoutput from the output position sensor, determine when an impact isdelivered to the anvil based on the anvil position, and change operationof the power tool when a number of impacts delivered to the anvilexceeds an impact threshold.

In another embodiment the invention provides a power tool including ahousing, an anvil supported by the housing, a motor positioned withinthe housing and configured to drive the anvil, and a hammer mechanicallycoupled to the motor. The hammer is configured to perform an impactingoperation by delivering a plurality of impacts to the anvil. The powertool also includes an output position sensor and a controller. Thecontroller is electrically coupled to the motor and to the outputposition sensor. The controller is configured to determine an anvilposition based on an output from the output position sensor, calculate aparameter of the impacting operation, and compare the calculatedparameter to a parameter threshold. The controller is also configured tochange an operation of the power tool when the calculated parameter isgreater than the parameter threshold.

Other aspects of the invention will become apparent by consideration ofthe detailed description and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a power tool according to one embodiment of theinvention.

FIG. 2 illustrates a nose portion of the power tool of FIG. 1 .

FIG. 3 illustrates a block diagram of the power tool.

FIG. 4 is a flowchart illustrating an operation of the power tool in ablow counting mode.

FIG. 5 is a flowchart illustrating an operation of the power tool in anadvanced blow counting mode.

FIG. 6 is an exemplary screenshot of a user interface generated by anexternal device.

FIG. 7 is a flowchart illustrating an operation of the power tool in anangular distance mode.

FIG. 8 is another exemplary screenshot of the user interface generatedby the external device.

FIG. 9 is a flowchart illustrating an operation of the power tool in aturn-of-nut mode.

FIG. 10 is another exemplary screenshot of the user interface generatedby the external device.

FIG. 11 is a flowchart illustrating an operation of the power tool in aconstant energy mode.

FIG. 12 is another screenshot of the user interface generated by theexternal device.

FIG. 13 is a graph showing the change in rotational position of an anvilover time.

FIG. 14 is a lateral cross-section of an impact mechanism according to asecond embodiment.

FIG. 15 is a front view of part of the impact mechanism according to thesecond embodiment and with a gear case removed.

FIG. 16 is a front view of an output position sensor according to athird embodiment.

FIG. 17 is a flowchart illustrating a method of determining an anvilposition of the power tool using the output position sensor of FIG. 16 .

FIG. 18 is a perspective view of the impact mechanism according to afourth embodiment.

FIG. 19 is a side view of the impact mechanism according to the fourthembodiment.

FIG. 20 is a front view of a hammer detector according to the fourthembodiment.

FIG. 21A is a cross-sectional view of the power tool taken along sectionline 21-21 of FIG. 1 and including an impact mechanism according to afifth embodiment.

FIG. 21B is a side view of the isolated impact mechanism according tothe fifth embodiment.

FIG. 21C is an exploded view of the impact mechanism according to thefifth embodiment.

FIG. 21D is an exposed perspective view of a hammer detector accordingto the fifth embodiment.

FIG. 22 is a partial front view of the hammer detector according to thefifth embodiment.

FIG. 23 is a schematic diagram of a hammer detector according to a sixthembodiment.

FIG. 24 is a schematic diagram of a hammer detector according to aseventh embodiment.

FIG. 25 is a front view of an output position sensor according to aneighth embodiment.

FIG. 26 is a schematic diagram of the output position sensor accordingto the eighth embodiment.

FIG. 27 is a schematic diagram of an output position sensor according toa ninth embodiment.

FIG. 28 is a schematic diagram of a magnetic ring of the output positionsensor according to the tenth embodiment.

FIG. 29 is a flowchart illustrating an operation of the power tool in atime to shutdown mode.

FIG. 30 is a flowchart illustrating an operation of the power tool in aminimum angle mode.

FIG. 31 is a flowchart illustrating an operation of the power tool in ayield control mode.

FIG. 32 is a flowchart illustrating an operation of the power tool in aclosed-loop speed control mode.

FIG. 33 is a flowchart illustrating an operation of the power tool in atorque control mode.

FIGS. 34 and 35 are exemplary screenshots illustrating a graphical userinterface associated with the torque control mode.

FIG. 36 is a flowchart illustrating an operation of the power tool in anadaptive PWM speed control mode.

FIG. 37 is an exemplary screenshot illustrating a graphical userinterface associated with a lug nut control mode.

FIG. 38 is a flowchart illustrating an operation of the power tool in adifferential impacting speed mode.

FIG. 39 is an exemplary screenshot of a graphical user interfaceassociated with a concrete anchor mode.

FIG. 40 is a flowchart illustrating an operation of the power tool in aconcrete anchor mode.

DETAILED DESCRIPTION

Before any embodiments of the invention are explained in detail, it isto be understood that the invention is not limited in its application tothe details of construction and the arrangement of components set forthin the following description or illustrated in the following drawings.The invention is capable of other embodiments and of being practiced orof being carried out in various ways. Also, it is to be understood thatthe phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limited. The use of“including,” “comprising” or “having” and variations thereof herein ismeant to encompass the items listed thereafter and equivalents thereofas well as additional items. The terms “mounted,” “connected” and“coupled” are used broadly and encompass both direct and indirectmounting, connecting and coupling. Further, “connected” and “coupled”are not restricted to physical or mechanical connections or couplings,and can include electrical connections or couplings, whether direct orindirect.

It should be noted that a plurality of hardware and software baseddevices, as well as a plurality of different structural components maybe utilized to implement the invention. Furthermore, and as described insubsequent paragraphs, the specific configurations illustrated in thedrawings are intended to exemplify embodiments of the invention and thatother alternative configurations are possible. The terms “processor”“central processing unit” and “CPU” are interchangeable unless otherwisestated. Where the terms “processor” or “central processing unit” or“CPU” are used as identifying a unit performing specific functions, itshould be understood that, unless otherwise stated, those functions canbe carried out by a single processor, or multiple processors arranged inany form, including parallel processors, serial processors, tandemprocessors or cloud processing/cloud computing configurations.

FIG. 1 illustrates a power tool 10 incorporating a direct current (DC)motor 15. In a brushless motor power tool, such as power tool 10,switching elements are selectively enabled and disabled by controlsignals from a controller to selectively apply power from a power source(e.g., battery pack) to drive (e.g., control) a brushless motor. Thepower tool 10 is a brushless impact wrench having a housing 20 with ahandle portion 25 and motor housing portion 30. The motor housingportion 30 is mechanically coupled to an impact case 35 that houses anoutput unit 40. The impact case 35 forms a nose of the power tool 10,and may, in some embodiments, be made from a different material than thehousing 20. For example, the impact case 35 may be metal, while thehousing 20 is plastic. The power tool 10 further includes a mode selectbutton 45, forward/reverse selector 50, trigger 55, battery interface60, and light 65. Although the power tool 10 illustrated in FIG. 2 is animpact wrench, the present description applies also to other impactingtools such as, for example, a hammer drill, an impact hole saw, animpact driver, and the like.

The power tool 10 also includes an impact mechanism 67 including ananvil 70, and a hammer 75 positioned within the impact case 35 andmechanically coupled to the motor 15 via a transmission 77. Thetransmission 77 may include, for example, gears or other mechanisms totransfer the rotational power from the motor 15 to the impact mechanism67, and in particular, to the hammer 75. The transmission 77 issupported by a gear case 78 (FIG. 21A) that in the illustratedembodiment is also coupled to the impact case 35. The gear case 78 mayalso be coupled to the housing 20. The hammer 75 is axially biased toengage the anvil 70 via a spring 80. The hammer 75 impacts the anvil 70periodically to increase the amount of torque delivered by the powertool 10 (e.g., the anvil 70 drives the output unit 40). The anvil 70includes an engagement structure 85 that is rotationally fixed withportions of the anvil 70. The engagement structure 85 includes aplurality of protrusions 90 (e.g., two protrusions in the illustratedembodiment) to engage the hammer 75 and receive the impact from thehammer 75. During an impacting event or cycle, as the motor 15 continuesto rotate, the power tool 10 encounters a higher resistance and winds upthe spring 80 coupled to the hammer 75. As the spring 80 compresses, thespring 80 retracts toward the motor 15, pulling along the hammer 75until the hammer 75 disengages from the anvil 70 and surges forward tostrike and re-engage the anvil 70. An impact refers to the event inwhich the spring 80 releases and the hammer 75 strikes the anvil 70. Theimpacts increase the amount of torque delivered by the anvil 70.

As shown in FIG. 2 , the impact wrench 10 also includes a cover 95 thatis also rotationally fixed to the anvil 70 (i.e., the cover 95 does notrotate with respect to the anvil 70). The cover 95 includes a pluralityof teeth 100 and grooves 105 evenly spaced around the surface of thecover 95. The teeth 100 and grooves 105 of the cover 95 allow sensors todetermine the position, speed, and acceleration of the anvil 70directly. In some embodiments, the cover 95 is integrally formed withthe anvil 70. In some embodiments, the cover 95 is integrally formedwith the engagement structure 85 such that the cover 95 and theengagement structure 85 form a single piece. In other embodiments, asshown in FIGS. 14-15 the impact wrench 10 does not include the cover 95.

FIG. 3 illustrates a simplified block diagram 110 of the brushless powertool 10, which includes a power source 115, Field Effect Transistors(FETs) 120, a motor 15, Hall Effect sensors 125 (also referred to simplyas Hall sensors), an output position sensor 130, a controller 135, userinput 140, and other components 145 (battery pack fuel gauge, worklights (LEDs), current/voltage sensors, etc.). The power source 115provides DC power to the various components of the power tool 10 and maybe a power tool battery pack that is rechargeable and uses, forinstance, lithium ion cell technology. In some instances, the powersource 115 may receive AC power (e.g., 120V/60 Hz) from a tool plug thatis coupled to a standard wall outlet, and then filter, condition, andrectify the received power to output DC power.

Each Hall sensor 125 outputs motor feedback information, such as anindication (e.g., a pulse) of when a magnet of the rotor rotates acrossthe face of that Hall sensor. Based on the motor feedback informationfrom the Hall sensors 125, the controller 135 can directly determine theposition, velocity, and acceleration of the rotor. In contrast to thedirect measurement of the rotor position, the Hall sensors 125 canadditionally provide indirect information regarding the position of theanvil 70. The output position sensor 130 outputs information regardingthe position of the anvil 70. In the illustrated embodiment, the outputposition sensor 130 is an inductive sensor configured to generate anelectromagnetic field and detect the presence (or proximity) of anobject based on changes of the electromagnetic field. In someembodiments, the output position sensor 130 may also be referred to as asensor assembly, an anvil sensor, or an anvil position sensor. In theillustrated embodiment, the output position sensor 130 is aligned withthe cover 95 of the anvil 70. The output position sensor 130 detectswhen each tooth 100 of the cover 95 passes the electromagnetic fieldgenerated by the output position sensor 130. Because each tooth 100 isevenly separated by one of the grooves 105, the detection by the outputposition sensor 130 of each tooth 100 indicates that the anvil 70 hasrotated a predetermined angular distance (e.g., 3 degrees). The outputposition sensor 130 generates a positive voltage every time a tooth 100passes the electromagnetic field, and, in some embodiments, the outputposition sensor 130 generates a negative voltage every time one of thegrooves 105 passes the electromagnetic field. When a plurality ofposition measurements for the anvil 70 are analyzed over time, othermeasurements regarding the anvil 70 can be derived (e.g., velocity,acceleration, etc.). Therefore, the output position sensor 130 providesdirect information that the controller 135 uses to determine theposition, velocity, and/or acceleration of the anvil 70 directly. Insome embodiments, the output position sensor 130 may be used to providean indirect measure of the rotor position and/or movement.

In the illustrated embodiment, the output position sensor 130 is housedwithin the impact case 35 at the nose of the power tool 10. The outputposition sensor 130 is positioned in front (e.g., closer to the outputunit 40) of the transmission 77. Referring back to FIG. 2 , the impactcase 35 of the power tool 10 includes a hole 146 configured to receive asensor block 147. The sensor block 147 includes a recessed portion 148onto which the output position sensor 130 is fixed. The sensor block 147is sized to fit within the hole 146 such that the perimeter of thesensor block 147 abuts the perimeter of the hole 146. When the sensorblock 147 is positioned in the hole 146, a back surface of the sensorblock 147 forms a smooth or flat surface with the rest of the nose 35 ofthe power tool 10. In other words, when the sensor block 147 ispositioned in the hole 146, the sensor block 147 and the rest of theimpact case 35 of the power tool 10 appear to form a single piece. Inother embodiments, the recessed portion 148 forms an integral part ofthe rest of the impact case 35 of the power tool 10, and the outputposition sensor 130 is placed on an inner surface of the impact case 35of the power tool 10. In other embodiments, such as those illustrated inFIGS. 14-15 , the output position sensor 130 may be incorporated intothe power tool 10 differently.

The controller 135 also receives user controls from user input 140, suchas by selecting an operating mode with the mode select button 45,depressing the trigger 55 or shifting the forward/reverse selector 50.In response to the motor feedback information and user controls, thecontroller 135 transmits control signals to control the FETs 120 todrive the motor 15. By selectively enabling and disabling the FETs 120,power from the power source 115 is selectively applied to stator coilsof the motor 15 to cause rotation of a rotor. Although not shown, thecontroller 135, output position sensor 130, and other components of thepower tool 10 are electrically coupled to the power source 115 such thatthe power source 115 provides power thereto.

In the illustrated embodiment, the controller 135 is implemented by anelectronic processor or microcontroller. In some embodiments, theprocessor implementing the controller 135 also controls other aspects ofthe power tool 10 such as, for example, operation of the work light 65and/or the fuel gauge, recording usage data, communication with anexternal device, and the like. In some embodiments, the power tool 10 isconfigured to control the operation of the motor based on the number ofimpacts executed by the hammer portion of the power tool 10. Thecontroller 135 monitors a change in acceleration and/or position of theanvil 70 to detect the number of impacts executed by the power tool 10and control the motor 15 accordingly. By monitoring the anvil positiondirectly, the controller 135 can effectively control the number ofimpacts over the entire range of the tool's battery charge and motorspeeds (i.e., regardless of the battery charge or the motor speed).

The power tool 10 operates in various modes. Each mode enables differentfeatures to be executed by the power tool 10 and facilitates certainapplications for the user. The current operational mode of the powertool 10 is selected by the user via user input 140. To receive the modeselection, the user input 140 may include manually-operable switches orbuttons on an exterior portion of the power tool 10 (e.g., mode selectbutton 45).

In some embodiments, the power tool 10 includes a communication circuit146 (e.g., a transceiver or a wired interface) configured to communicatewith an external device 147 (e.g., a smartphone, a tablet computer, alaptop computer, and the like). The external device 147 generates agraphical user interface (see, e.g., FIG. 10 ) that receives variouscontrol parameters from a user. The graphical user interface presents amode profile to the user. The mode profile includes a group of selectfeatures and selectors associated with each feature. For example, afirst mode profile may include a motor speed feature and a work lightfeature. The first mode profile further defines specific parametervalues for the motor speed and a brightness for the work light. Thegraphical user interface receives selections from a user specifyingwhich features are included in each mode profile and defining theparameter values for the selected features. The parameters may bespecified as absolute values (e.g., 1500 RPM or 15 revolutions), aspercentages (e.g., 75% of maximum RPM), or using another scale (e.g.,joint stiffness between 1 and 10) that the controller 135 can convertinto absolute values for controlling the operation of the power tool 10.

The graphical user interface also receives an indication from the userto send a specific mode profile to the power tool 10. The externaldevice then sends the mode profile to the power tool 10. The power tool10 receives the mode profile and stores the mode profile in a memory ofthe power tool 10 (e.g., a memory of the controller 135 and/or aseparate memory). The power tool 10 (e.g., the controller 135) thenreceives a selection of an operational mode for the power tool 10 anddetects a depression of the trigger 55. The controller 135 then operatesthe power tool 10 according to the selected operational mode. Based onthe selected operational mode, the controller 135 may cease operation ofthe power tool 10 under different conditions. For example, thecontroller 135 may stop driving the motor 15 after a predeterminednumber of impacts have been delivered to the anvil 70, and/or thecontroller 135 may cease operation of the power tool 10 when a releaseof the trigger 55 is detected by the controller 135, even if the powertool 10 is in the middle of an operation and/or task.

In the illustrated embodiment, the power tool 10 can operate in a blowcounting mode, an advanced blow counting mode, an angular distance mode,a turn-of-nut mode, and a constant energy mode. In some embodiments,each of these modes can be considered a feature that can be incorporatedinto a mode profile. As discussed above, each mode profile can have twoor more features that can be used simultaneously or sequentially tocontrol operation of the power tool 10. Similarly, two or more of thesemodes can be combined and used within a single mode profile forsimultaneous and/or sequential control of the power tool 10.

FIG. 4 illustrates the operation of the power tool 10 in the blowcounting mode. During the blow counting mode, the controller 135 drivesthe motor 15 according to a selected mode and a trigger pull (step 149).The controller 135 then determines that an impacting operation has begunby determining whether the motor current is greater than or equal to acurrent threshold (step 150). When the motor current is greater than orequal to the current threshold, the controller determines that animpacting operation has begun. Otherwise, if the motor current remainsbelow the current threshold, the controller 135 determines that anon-impacting (e.g., a continuous) operation is being executed and thecontroller 135 continues to drive the motor according to the mode andthe trigger pull. In other embodiments, the controller 135 may determinethat an impacting operation has begun by monitoring other parameters ofthe power tool 10 such as, for example, motor speed. The controller 135then monitors the position of the anvil 70 through periodic anvilposition measurements to determine the number of impacts received by theanvil 70 from the hammer 75 until a predetermined number of impacts aredelivered to the anvil 70. As discussed previously, the motor 15 windsup the spring 80. As the spring 80 winds up, the load to the motor 15increases. The motor 15 then slows down (i.e., decelerates) in responseto the increasing load. Eventually, the hammer 75 disengages the anvil70 and the spring 80 releases. When the spring 80 releases, the hammer75 surges forward and strikes the anvil 70, thereby generating an impactand causing the anvil 70 to rotate at least a predetermined amount(e.g., a position threshold). When the controller 135 detects that theanvil 70 has rotated by the predetermined amount, the controller 135increments an impact counter. The operation of the motor 15 continuesuntil a particular number of impacts are delivered to the anvil 70.

As shown in FIG. 4 , in the blow counting mode, the controller 135measures the position of the anvil 70 using the output position sensor130 in step 152. The controller 135 calculates the change in position ofthe anvil 70 (e.g., by comparing the current anvil position to aprevious anvil position) (step 153), and determines whether the changein anvil position is greater than a position threshold (step 155). Theposition threshold is indicative of the minimum amount the anvil 70 isrotated when the hammer 75 delivers an impact. If the controller 135determines that the change in anvil position does not exceed theposition threshold, the controller 135 continues operation of the motor15 and monitors the anvil position (step 152). When the controller 135detects that the change in anvil position is greater than the positionthreshold, the controller 135 increments an impact counter (step 160).The controller 135 then determines whether the current impact counter isgreater than an impact threshold (step 165). The impact thresholddetermines the number of impacts to be delivered to the anvil 70 beforethe operation of the power tool 10 is changed. If the current impactcounter does not exceed the impact threshold, the controller 135continues to operate the motor 15 until the impact counter reaches adesired number of impacts.

When the impact counter is greater than the impact threshold, thecontroller 135 changes the operation of the motor 15 (step 170) andresets impact counter (step 175). For instance, changing the motoroperation can include stopping the motor 15, increasing or decreasingthe speed of the motor 15, changing the rotation direction of the motor15, and/or another change of motor operation. As mentioned previously,in some embodiments, the blow counting mode can be a feature that iscombined with other features within a single mode. In such embodiments,the particular change in motor operation can depend on the otherfeatures used in combination with the blow counting mode. For example, amode profile may combine a driving speed feature with the blow countingmode such that the driving speed of the motor changes based on thenumber of detected impacts. For example, a power tool 10 may beconfigured to rotate at a slow speed until five impacts are delivered,and then increase the driving speed to a medium speed until tenadditional impacts are delivered, and finally increase at nearly themaximum speed until five additional impacts are delivered. In thisexample, the power tool 10 delivers a total of twenty impacts, andoperates in a slow speed, a medium speed, and a high speed. In otherembodiments, other features are combined with the blow counting mode.

In the advanced blow counting mode, the power tool 10 operates similarlyto when the power tool 10 is in the blow counting mode as describedabove with respect to FIG. 4 . However, in the advanced blow countingmode, the controller 135 only begins counting the number of impactsdelivered to the anvil 70 after a joint between a surface and a fastenerreaches a predetermined stiffness. The controller 135 determines thestiffness of the joint based on the rotational distance traveled by theanvil 70 in response to a received impact from the hammer 75. Thecontroller 135 determines a low stiffness when the rotational distancetraveled by the anvil 70 is relatively high. As the rotational distancetraveled by the anvil 70 decreases, the stiffness calculated by thecontroller 135 increases. In some embodiments, the power tool 10calibrates a measure of stiffness by running the power tool 10 unloaded.The joint stiffness calculated on a specific joint is then relative tothe stiffness calculated when the power tool 10 is unloaded.

FIG. 5 illustrates a method performed by the controller 135 when thepower tool 10 operates in the advanced blow counting mode, where impactsare counted only after the joint reaches a predetermined stiffness. Asshown in FIG. 5 , the controller 135 drives the motor 15 according to aselected mode and a trigger pull (step 178). The controller 135 thendetermines the start of an impacting operation (step 179) by monitoringmotor current. In particular, the controller 135 determines that animpacting operation has begun when the motor current is greater than orequal to a current threshold. In other embodiments, the controller 135may monitor other parameters (e.g., motor speed) to determine when animpacting operation starts. The controller 135 also measures theposition of the anvil 70 as performed with respect to FIG. 4 (step 180).The controller 135 then calculates a change in anvil position based on acurrent anvil position and a previous anvil position (step 185). Thecontroller 135 proceeds to determine whether the change in anvilposition is greater than the position threshold, thus indicating animpact has been delivered to the anvil 70 (stop 190). If the change inanvil position is not greater than the position threshold, thecontroller 135 continues driving the motor and monitoring the anvilposition (step 180).

On the other hand, if the change in anvil position is greater than theposition threshold, the controller 135 then calculates a joint stiffnessbased on the change in anvil position (step 195). In other words, thecontroller 135 first determines whether an impact has occurred, and ifan impact has occurred, the controller 135 then uses the calculatedchange in anvil position to calculate the stiffness of the joint. Thecontroller 135 then determines whether the calculated stiffness isgreater than a stiffness threshold (step 200). If the calculatedstiffness is not yet greater than the stiffness threshold, thecontroller 135 continues driving the motor and monitoring the anvilposition (step 180). However, if the calculated stiffness is greaterthan the stiffness threshold, the controller 135 increments the impactcounter by one (step 205). The controller 135 then determines whetherthe impact counter is greater than the impact threshold (step 210)similar to step 165 of FIG. 4 . If the impact counter is not yet greaterthan the impact threshold, the controller 135 continues to drive themotor and monitor the anvil position (step 180). Once the impact counteris greater than the impact threshold, the controller 135 changes motoroperation and resets the impact counter (step 215) as described abovewith respect to FIG. 4 . As discussed previously, in some embodiments,the advanced blow counting mode is one of the features used within amode profile. In such embodiments, the advanced blow counting mode maybe combined with other configurable features provided in a mode such as,for example, driving speed of the motor, target torque for a fastener,and the like.

FIG. 6 illustrates an exemplary screenshot of a user interface generatedby an external device in communication with the power tool 10. Anexternal device can, in some embodiments, be used to program theoperation of the power tool 10. For example, as shown in FIG. 6 , theexternal device can generate a graphical user interface including aplurality of selectors (e.g., sliders) configured to receive userselections of, for example, a desired joint stiffness (to specify thestiffness threshold used in step 200 of FIG. 5 ), and a number ofimpacts to be delivered to the anvil 70 before the motor operation ischanged. In some embodiments, the user does not specify each parameterused by the controller 135. Rather, the graphical user interfacereceives characteristics of the fastening application (e.g., type offastener, material, etc.) from the user and the external devicedetermines the parameters to be used by the controller 135. While FIG. 6illustrates a selector for joint stiffness and a selector for an impactthreshold, when the power tool 10 operates in the blow counting mode,the selector for joint stiffness is not necessary and may, therefore, beomitted.

FIG. 7 illustrates the operation of the power tool 10 when the powertool 10 operates in the angular distance mode. In the angular distancemode, the controller 135 can also determine when the anvil has rotated apredetermined rotational distance, and can control the motor 15 based onthe angular position of the anvil 70. As shown in the flowchart of FIG.7 , the controller 135 drives the motor 15 according to a selected modeand a detected trigger pull (step 218). The controller 135 also detectsseating of the fastener (step 220). In the illustrated embodiment, thecontroller 135 determines that a fastener is seated by monitoring anangular displacement of the anvil 70 in response to each impact. As thefastener becomes seated, the amount of angular displacement of the anvil70 decreases. Therefore, when the angular displacement of the anvil 70in response to an impact is less than a particular angular displacementthreshold, the controller 135 determines that the fastener has seated.Until seating of the fastener has occurred, the controller 135 continuesto operate the motor 15 according to the selected mode and detectedtrigger pulls. When the controller 135 determines that the fastener hasseated, the controller 135 measures the position of the anvil using theoutput position sensor 130 (step 225), and continues to operate themotor 15 in the desired direction until the anvil 70 has rotated thedesired rotational distance (step 218). If the controller 135 determinesthat the anvil 70 has not yet rotated the desired rotational distanceafter seating of the fastener, the controller 135 continues to operatethe motor 15 according to pull of the trigger 55 (step 235). On theother hand, when the controller 135 determines that the anvil 70 hasrotated the desired rotational distance after seating of the fastener,the controller 135 changes operation of the motor 15 (step 240). Asexplained above with respect to FIG. 4 , changing the operation of themotor includes changing a direction of the motor, stopping the motor,changing the rotational speed of the motor 15, and changes based on theselected mode of operation for the power tool 10.

FIG. 8 illustrates an exemplary screenshot of a graphical user interfaceconfigured to receive a user selection of a desired angular distanceafter seating of the fastener. As shown in FIG. 8 , the graphical userinterface can receive a parameter selection from the user specifying thedesired rotational distance and the desired change to the operation ofthe motor once the anvil 70 rotates by the desired rotational distance.Rotating the anvil 70 by a predetermined rotational distance after theseating of the fastener may enable the controller 135 to fasten afastener to a specified fastener tension. In some embodiments, insteadof changing the motor operation after the anvil 70 has rotated by thepredetermined rotational distance, the controller 135 may calculate afastener tension and change operation of the motor 15 once a particularfastener tension is reached. For example, the controller 135 maycalculate the fastener tension based on the rotational displacement ofthe anvil 70 and may compare the calculated fastener tension to apredetermined tension threshold. The controller 135 may continue tooperate the motor 15 until the predetermined tension threshold isreached. When the predetermined tension threshold is reached, thecontroller 135 may change operation of the motor 15.

FIG. 9 illustrates the operation of the power tool 10 during aturn-of-nut mode and FIG. 10 illustrates an exemplary screenshot of auser interface configured to receive a selection of parameter values forthe turn-of-nut mode. As shown in FIG. 10 , the graphical user interfacecan receive from a user a target number of turns to be performed on thenut for the nut to be tightened and a motor speed parameter. As anexample, the target number of turns are provided to the user based on,for example, engineering specifications for a particular job or task.During the turn-of-nut mode, the controller 135 drives the motor 15according to the selected mode and detected trigger pull (step 243). Thecontroller 135 also measures the position of the anvil using the outputposition sensor 130 (step 245) and determines whether the anvil 70 hasrotated a predetermined distance (step 250) by, for example, monitoringa change in the anvil position. If the anvil 70 has not rotated thepredetermined distance, the controller 135 continues to operate themotor 15. The predetermined distance is indicative of a single turn, orfraction of a turn, performed by the nut. Therefore, when the anvil 70has rotated the predetermined distance, the controller 135 increments aturn counter by one (step 255). The controller 135 then determines ifthe turn counter is greater than a turn threshold (step 260). The turnthreshold is indicative of the user-specified number of turns to beperformed for the nut to be tightened. If the turn counter is notgreater than the turn threshold, the controller 135 continues to operatethe motor 15 and returns to step 245. When the turn counter is greaterthan the turn threshold, the controller 135 changes the operation of themotor 15 (step 265) as discussed above with respect to FIG. 4 , andresets the turn counter (step 270). For instance, with reference to FIG.10 , the motor 15 will change to the speed specified by the motor speedparameter slider in step 265.

In some embodiments, the user may not specify the number of turns to beperformed, but may instead specify a total angle from the first impact.In such embodiments, the user specified total angle may be used as thepredetermined distance compared to the rotation of the anvil 370 at step250. When the controller 135 determines that the anvil 370 has rotatedthe desired total angle from the first impact (e.g., when the rotationof the anvil 370 exceeds the predetermined distance), the controller 135proceeds to step 265 to change the motor operation. In such embodiments,a turn counter does not need to be used.

FIG. 11 illustrates operation of the power tool 10 during the constantenergy mode. As shown in FIG. 11 , the controller 135 provides controlsignals to drive the motor 15 according to the selected mode, triggerpull, and desired impact energy (step 275) and calculates an impactenergy (step 280). The impact energy is calculated based on, forexample, the rotation of the motor 15, the change in anvil position inresponse to receiving an impact from the hammer 75, the change in anvilposition when no impact is received, and the like. The controller 135then calculates a change in impact energy based on previous calculationsof the impact energy (step 285), and determines whether the change inimpact energy is greater than an energy change threshold (step 290). Ifthe impact energy change is not greater than the energy changethreshold, the controller 135 continues to operate the motor 15 in thesame manner (step 275). If, however, the impact energy change is greaterthan the energy change threshold, the controller 135 adjusts a PWMsignal used to control the motor 15 such that the impact energy remainsapproximately constant (step 295). For instance, the PWM duty cycle isincreased to increase the impact energy and decreased to decrease theimpact energy. The constant energy mode thus provides closed-loopoperation for the power tool 10. The constant energy mode may be usefulfor impact hole saws, for example, to operate at a constant energy whilecutting through material. The constant energy mode may also be usefulfor impact wrenches to tighten fasteners at an approximately constantenergy.

As shown in FIG. 12 , the graphical user interface on the externaldevice may receive a selection of whether a constant energy mode isdesired (e.g., on/off toggle (not shown)) and a level of impact energy(e.g., high impact energy, medium impact energy, or low impact energy),instead of receiving a specific impact energy for use in the constantenergy mode. In other embodiments, the graphical user interface mayreceive a specific impact energy to be used for the constant energymode.

With respect to FIGS. 4-12 , the controller 135 may also use the outputsignals from the Hall effect sensors 125 in combination with the outputsignals from the output position sensor 130 to control operation of themotor 15. For example, when the controller 135 detects that the motor 15is no longer operating (e.g., using the signals from the Hall effectsensors 125), the controller 135 resets the impact counter and the turncounter to zero to begin the next operation, even if, for example, theimpact threshold and/or the turn threshold was not reached. Thecontroller 135 can also determine that the motor 15 is no longerexecuting impacting events when the time between consecutive impactingevents exceeds a predetermined end-of-impacting threshold. The timevalue used as the end-of-impacting threshold is, for example, determinedexperimentally by measuring the time the power tool 10 takes to completean impacting event when running in the power tool's lowest impactingspeed and while powered with a battery that has low battery charge.

FIG. 13 illustrates a graph showing rotation position (in radians) ofthe anvil 70 with respect to time during an impacting operation. Asshown in FIG. 13 , due to the impacting operation, the anvil 70illustrates a stepwise increase in rotational position (e.g., becausethe anvil 70 advances in response to an impact from the hammer 75). Asalso shown in FIG. 13 , as the duration of the impacting operationincreases (e.g., increase in the time axis), each impact from the hammer75 provokes a smaller change in the anvil's rotational position. Thismay be indicative of the increase in torque needed to move the anvil 70as the duration of the impacting operation increases, and a fastenermoves deeper into a work piece.

FIGS. 14-15 illustrate another embodiment of an impact mechanism 300 andan output position sensor 305 (e.g., also referred to as a sensorassembly) included in the impact wrench 10. The impact mechanism 300includes similar components as the impact mechanism 67 shown in FIGS. 1and 2 , and like parts have been given like reference numbers, plus 300.FIG. 14 is a lateral cross-section of the impact mechanism 300. Theimpact mechanism 300 includes an anvil 370, and a hammer 375 and ismechanically coupled to the motor (not shown). The hammer 375 impactsthe anvil 370 periodically to increase the amount of torque delivered bythe power tool 10. The anvil 370 includes an engagement structure 385including two protrusions 390 a, 390 b to engage the hammer 375 andreceive the impact from the hammer 375. As shown in FIG. 14 , the impactmechanism 300 is at least partially covered by the impact case 35, andthe output position sensor 305 is positioned in front (e.g., on a sideof an output unit, rather than a side of the motor of the power tool 10)of the impact mechanism 300 and the transmission 77 of the power tool10. More specifically, the output position sensor 305 is positionedbetween the engagement structure 385 and the impact case 35, and withinthe impact case 35. As shown in FIG. 14 , the output position sensor 305is positioned adjacent to the engagement structure 385.

FIG. 15 is a front view of the impact mechanism 300 in the directionshown by arrow A in FIG. 14 and with the hammer 375 removed. As shown inmore detail in FIG. 15 , the output position sensor 305 includes threeseparate inductive sensors 305 a, 305 b, 305 c. The three inductivesensors 305 a, 305 b, 305 c are positioned on an annular structure(i.e., a printed circuit board (PCB)) that is positionedcircumferentially around the anvil 370. The three inductive sensors 305a, 305 b, and 305 c can detect, by detecting a change in theirelectromagnetic field, the passing of the two protrusions 390 a, 390 bof the engagement structure 385 of the anvil 370, and may, in someinstances, be referred to as anvil position sensors or anvil sensors.Since the two protrusions 390 a, 390 b are stationary relative to theanvil 370, the three inductive sensors 305 a, 305 b, 305 c outputinformation regarding the rotational position of the anvil 370. In theillustrated embodiment, the three inductive sensors 305 a, 305 b, 305 care equidistant from each other; therefore, the detection by each of thethree inductive sensors 305 a, 305 b, 305 c of each of the protrusions390 a, 390 b indicates that the anvil 370 has rotated a predeterminedangular distance (e.g., 60 degrees). As shown in FIG. 15 , the threeinductive sensors 305 a, 305 b, 305 c are elongated sensors in which afirst end 380 of the sensor 305 a, 305 b, 305 c is more densely packedwith inductive coils and the second, opposite end 382 of the sensor isless densely packed with inductive coils. In other words, while thefirst end 380 is densely packed with inductive coils, the second end 382is sparsely packed with inductive coils. Therefore, each inductivesensor 305 a, 305 b, 305 c outputs a different signal to the controller135 based on where along the length of the inductive sensor 305 a, 350b, 305 c each of the protrusions 390 a, 390 b is positioned. When one ofthe protrusions 390 a, 390 b is positioned closer to the first end 380of the sensor 305 a, 305 b, 305 c, the inductive sensor 305 a, 305 b,305 c generates a larger output signal. On the other hand, when one ofthe protrusions 390 a, 390 b is positioned closer to the second end 382of the sensor 305 a, 305 b, 305 c, the sensor 305 a, 305 b, 305 coutputs a smaller output signal. When a plurality of positionmeasurements for the anvil 370 are analyzed over time, othermeasurements regarding the anvil 370 can be derived (e.g., velocity,acceleration, etc.). Therefore, the output position sensor 305 providesinformation that the controller 135 of the power tool 10 uses todirectly determine the position, velocity, and/or acceleration of theanvil 370. In some embodiments, the output position sensor 305 may beused to provide an indirect measure of the rotor position and/ormovement.

Although FIGS. 14-15 illustrate a different placement of the outputposition sensor 305, the operation of the power tool 10 as described byFIGS. 3-12 remains similar. In particular, the output position sensor305 replaces the output position sensor 130 described with respect toFIGS. 3-12 . Both output position sensors 130 and 305 provideinformation to directly determine the position and/or movement of theanvil 70, 370. Therefore, the methods described with respect to FIGS.4-12 remain similar, except the information regarding the position ofthe anvil 70, 370 is gathered from the output position sensor 305 shownin FIGS. 14-15 , rather than the output position sensor 130 shown inFIG. 2 .

FIG. 16 illustrates another embodiment of an output position sensor 405(or sensor assembly) included in the impact wrench 10. The outputposition sensor 405 is positioned, with respect to the impact mechanism300, similar to the output position sensor 305 shown in FIGS. 14 and 15(e.g., in front of the transmission 77 and on an annular structurecircumferentially around the anvil, and housed by the impact case 35).In other words, the output position sensor 405 of FIG. 16 replaces theoutput position sensor 305 within the impact mechanism 300. Therefore,the impact mechanism 300 and the placement of the output position sensor405 are not shown. Additionally, description for the components of theimpact mechanism 300 and the placement of the output position sensor 405with respect to the impact mechanism 300 is omitted for conciseness.

As shown in FIG. 16 , the output position sensor 405 includes fourseparate inductive sensors 405 a, 405 b, 405 c, and 405 d. Three of theinductive sensors 405 a, 405 b, 405 c are positioned on an annularstructure that is positioned circumferentially around the anvil 370. Thethree inductive sensors 405 a, 405 b, 405 c are referred to collectivelyas the “circumferential sensors,” “anvil sensors,” or “anvil positionsensors.” Similar to the three inductive sensors 305 a, 305 b, 305 cdescribed with respect to FIG. 15 , the three circumferential sensors405 a, 405 b. 405 c of FIG. 16 detect the passing of the two protrusions390 a, 390 b of the engagement structure 385 of the anvil 370. Asexplained above, since the two protrusions 390 a, 390 b are stationaryrelative to the anvil 370, by detecting changes in the electromagneticfields of each of the circumferential sensors 405 a, 405 b, 405 c, thethree circumferential sensors 405 a, 405 b, 405 c output informationregarding the position of the anvil 370. In the illustrated embodiment,the three circumferential sensors 405 a, 405 b, 405 c are equidistantfrom each other; therefore, the detection by each of the threecircumferential sensors 405 a, 405 b, 405 c of each of the protrusions390 a, 390 b indicates that the anvil 370 has rotated a predeterminedangular distance (e.g., 60 degrees). Similar to the inductive sensors305 a, 305 b, 305 c described with respect to FIGS. 14-15 , when aplurality of the position measurements of the anvil 370 are analyzedover time, other measurements regarding the anvil 370 can be derived(e.g., velocity, acceleration, and the like). Therefore, in a similarmanner as the inductive sensors 305 a, 305 b, 305 c of FIGS. 14-15 , thecircumferential sensors 405 a, 405 b, 405 c provide information that thecontroller 135 of the power tool 10 uses to directly determine theposition, velocity, and/or acceleration of the anvil 370. In someembodiments, the circumferential sensors 405 a, 405 b, 405 c may be usedto provide an indirect measure of the rotor position and/or movement.

As shown in FIG. 16 , the output position sensor 405 also includes afourth inductive sensor referred to as the hammer detector 405 d. Thehammer detector 405 d is positioned toward the outside of thecircumferential sensors 405 a, 405 b, 405 c. In the illustratedembodiment, the hammer detector 405 d is positioned between the secondcircumferential sensor 405 b and the third circumferential sensor 405 c,but in other embodiments, the hammer detector 405 d may be positionedelsewhere along the circumference of the output position sensor 405. Thehammer detector 405 d detects a proximity of the hammer 375 to theoutput position sensor 405 and, more generally, to the anvil 370. Sincethe three circumferential sensors 405 a, 405 b, 405 c are inductive,when a metal hammer, such as the hammer 375 of the power tool 10,impacts the anvil 370 (or otherwise comes near the circumferentialsensors 405 a, 405 b, 405 c), the outputs of the circumferential sensors405 a, 405 b, 405 c become unreliable. In other words, thecircumferential sensors 405 a, 405 b, 405 c do not accurately measurethe position of the two protrusions 390 a, 390 b of the anvil 370 whenthe metal hammer 375 is adjacent the anvil 370 and near the outputposition sensor 405 (e.g., when the hammer 375 is impacting the anvil370). Therefore, for the position measurements for the anvil 370 to bereliable, the controller 135 ignores the outputs from thecircumferential sensors 405 a, 405 b, 405 c when the hammer 375 iswithin a predetermined distance from the output position sensor 405, andinstead uses only the outputs from the circumferential sensors 405 a,405 b, 405 c when the hammer 375 is further than the predetermineddistance from the output position sensor 405.

In one embodiment, the predetermined distance is determined based on thenumber of wire windings of the inductive hammer detector 405 d. The morewire windings included in the hammer detector 405 d, the greater thepredetermined distance. When the hammer 375 comes closer to the outputposition sensor 405 than the predetermined distance, the output from thehammer detector 405 d changes (e.g., increases significantly). Thehammer detector 405 d sends its output to the controller 135 and thecontroller 135 determines, based on the output from the hammer detector405 d (e.g., exceeding a threshold), when the hammer 375 is within thepredetermined distance. In some embodiments, the output position sensor405 (or sensor assembly) may include the hammer detector 405 d, but notthe anvil sensors 405 a, 405 b, 405 c, such that the hammer detector 405d is the sensor assembly.

FIG. 17 illustrates a method 420 executed by the controller 135 thatutilizes the information gathered by the hammer detector 405 d todetermine which measurements from the circumferential sensors 405 a, 405b, 405 c to discard and which measurements to use in determiningposition information for the anvil 370. First, the controller 135receives the outputs from the circumferential sensors 405 a, 405 b, 405c (step 430) and from the hammer detector 405 d (step 435). Thecontroller 135 then determines whether the output from the hammerdetector 405 d is greater than (e.g., exceeds) a predetermined proximitythreshold (step 440). The predetermined proximity threshold correspondsto the predetermined distance between the hammer 375 and the outputposition sensor 405 within which the hammer 375 negatively impacts theaccuracy of the circumferential sensors 405 a, 405 b, 405 c. When theoutput from the hammer detector 405 d is less than or equal to thepredetermined proximity threshold, the controller 135 determines thatthe hammer 375 is within the predetermined distance (e.g., impacting theanvil 370), and the outputs from the circumferential sensors 405 a, 405b, 405 c are unreliable (step 445). Therefore, while the hammer 375 iswithin the predetermined distance, the controller 135 ignores theoutputs from the circumferential sensors 405 a, 405 b, 405 c (step 450).

On the other hand, when the output from the hammer detector 405 d isgreater than the predetermined proximity threshold, the controller 135determines, at step 455, that the hammer 375 is outside thepredetermined distance (e.g., rebounding after an impact to the anvil370). The controller 135 then starts a debounce timer (step 460). Whilethe debounce timer increases in value (e.g., with the passage of time),the controller 135 continues to collect outputs from the circumferentialsensors 405 a, 405 b, 405 c (step 465). The controller 135 periodicallychecks the timer value and determines whether the timer value is greaterthan (e.g., exceeds) a time threshold (step 470). The time thresholdcorresponds to an estimate of time for which the hammer 375 issufficiently separated from the output position sensor 405 to negativelyaffect the accuracy of the circumferential sensors 405 a, 405 b, 405 c.

While the timer value remains below the time threshold, the controller135 continues to collect outputs from the circumferential sensors 405 a,405 b, 405 c (step 465). When, however, the timer value becomes greaterthan the time threshold, the controller 135 determines the positionalinformation for the anvil 370 based on the outputs received from thecircumferential sensors 405 a, 405 b, 405 c while the timer remainedbelow the time threshold (step 475). In one embodiment, the controller135 first averages the multiple measurements obtained from thecircumferential sensors 405 a, 405 b, 405 c, and then uses the averagedmeasurements (e.g., an averaged output position) to determine theposition of the anvil 370. By averaging the measurements from thesensors 405 a, 405 b, 405 c, some of the noise in the output signals isreduced and more reliable measurements are obtained. Once the timervalue reaches the time threshold, the controller 135 returns to step 430to receive additional outputs from the circumferential sensors 405 a,405 b, 405 c and from the hammer detector 405 d (step 435) to determinewhether the hammer 375 is within the predetermined distance.

In some embodiments, the controller 135 does not determine when to stopreceiving outputs from the circumferential sensors based on a timer.Rather, the controller 135 collects (e.g., receives) a predeterminednumber of sensor output signals. For example, the controller 135 mayspecifically collect 10 or 50 (or another predetermined) number ofoutput signals from the circumferential sensors 405 a, 405 b, 405 cbefore determining the anvil position at step 475.

As explained above with respect to the output position sensor 305 shownin FIGS. 14-15 , once the controller 135 determines the position of theanvil 370 using the output position sensor 405 shown in FIG. 16 , theoperation of the power tool 10 as described by FIGS. 3-12 remainssimilar. In particular, the output position sensor 405 replaces theoutput positon sensor 130 described with respect to FIGS. 3-12 . Theoutput position sensors 130, 305, and 405 all provide directmeasurements of the positon and/or movement of the anvil 70, 370.Therefore, the methods described with respect to FIGS. 4-12 remainsimilar, except the information regarding the positon of the anvil 70,370 is gathered from the output position sensor 405 shown in FIG. 16 ,rather than the output position sensor 130 shown in FIG. 2 or the outputposition sensor 305 shown in FIGS. 14-15 .

FIGS. 18-20 illustrate another embodiment of a hammer detector 500(e.g., sensor assembly) that determines when the hammer 375 impacts theanvil 370 using two different inductive sensors. The hammer detector 500is positioned, with respect to the impact mechanism 300, similar to theoutput position sensor 305 shown in FIGS. 13 and 14 . As shown in FIGS.18 and 19 , the hammer detector 500 of FIG. 18 is positioned in front(e.g., on a side of an output unit, rather than a side of the motor ofthe power tool 10) of the impact mechanism 300 and in front of thetransmission 77 of the power tool 10. More specifically, the hammerdetector 500 is positioned between the engagement structure 385 and theimpact case 35 (FIG. 14 ), and within the impact case 35. The hammerdetector 500 is positioned on an annular structure (e.g., PCB 115 inFIG. 20 ) that is circumferential around the anvil 370. Additionally,description of the components of the impact mechanism 300 is omitted forconciseness.

As shown in FIG. 20 , the hammer detector 500 includes a sense inductivecoil 505, a reference inductive coil 510, and a voltage divider network512 positioned on a donut-shaped (e.g., annular) printed circuit board(PCB) 515. The sense inductive coil 505 is positioned radially outward,while the reference inductive coil 510 is positioned radially inward. Inother words, the reference inductive coil 510 is positioned closer to acentral axis 520 of the anvil 370 than the sense inductive coil 505.Such placement allows the sense inductive coil 505 to be aligned with anouter lip 525 of the hammer 375 while the reference coil 510 remainsunaligned with the outer lip 525 of the hammer 375. Because the senseinductive coil 505 is aligned with the outer lip 525, the output of thesense inductive coil 505 changes when the outer lip 525 axiallyapproaches the hammer detector 500. In other words, the output of thesense inductive coil 505 changes when the hammer 375 axially approachesthe hammer detector 500 to impact the anvil 370. The reference inductivecoil 510, on the other hand, does not detect the approach of the hammer375 because the reference inductive coil 510 is unaligned with the outerlip 525 and the rest of the hammer 375 is too far from the hammerdetector 500 to affect the output of the reference inductive coil 510.Therefore, the reference inductive coil 510 outputs an unchanged outputsignal regardless of the position of the hammer 375, while the outputfrom the sense inductive coil 505 changes based on how close the hammer375 is to the hammer detector 500. In some embodiments, the referenceinductive coil 510, while unaligned with the outer lip 525, stilldetects the approach of the hammer 375 to some extent. However, in theseembodiments, the change in output signal from the reference inductivecoil 510 upon the approach of the hammer 375 is noticeably distinct from(i.e., less than) the change in output signal from the sense inductivecoil 505 because of the different radial placement of the two coils onthe PCB 515. In the illustrated embodiment, the outer lip 525 extendsthe entire circumference of the hammer 375. In other embodiments,however, the outer lip 525 may extend only intermittently along thecircumference of the hammer 375.

The hammer detector 500 then compares the output from the senseinductive coil 505 to the output from the reference inductive coil 510.When a difference between the output from the sense inductive coil 505and the output from the reference inductive coil 510 is greater than athreshold, the hammer detector 500 outputs a first output signalindicating that the hammer 375 is impacting the anvil 370. In contrast,when the difference between the output from the sense inductive coil 505and the output from the reference inductive coil 510 is less than thethreshold, the hammer detector 500 outputs a second output signalindicating that the hammer 375 is not impacting the anvil 370. Thereference inductive coil 510 is coupled to the voltage divider network512 and together, the reference inductive coil 510 and the voltagedivider network 512 provide a threshold for the sense inductive coil505, which then allows the output signals from the hammer detector 500to be binary. For example, the hammer detector 500 may output a highsignal when the hammer 375 is impacting and output a low signal when thehammer 375 is not impacting, or vice versa. Because the hammer detector500 generates binary outputs, the processing performed by the controller135 is reduced. For example, the controller 135 does not receive theanalog output signals from the sense inductive coil 505 and thereference inductive coil 510 and perform computations to determinewhether an impact occurred. Rather, the hammer detector 500 of FIGS.18-20 simply outputs a signal indicating whether the hammer 375 isimpacting the anvil 370. In some embodiments, the controller 135 mayrefer to the controller 135 of the power tool 10 controlling, forexample, the motor 15, and the voltage divider network 512 that helps indetermining when the hammer 375 is impacting the anvil 370.

FIGS. 21-22 illustrate another embodiment of a hammer detector 600(e.g., sensor assembly). FIG. 21A illustrates a cross-sectional view ofthe power tool 10 including the hammer detector 600. FIG. 21B is anisolated side view of the impact mechanism 300 including the hammerdetector 600. The hammer detector 600 is positioned radially outward ofan outer periphery of the hammer 375 on a periphery side of the hammer375, as shown in FIGS. 21A-B. The hammer detector 600 is positioned infront (e.g., closer to the output unit 40) of the transmission 77 of thepower tool 10 and within the impact case 35. In particular, as shown inFIGS. 21C-D, the hammer detector 600 is mounted to the impact case 35and to the gear case 78. The hammer detector 600 is aligned with aportion 605 (FIG. 22 ) of the impact case 35 that covers the hammer 375and the hammer detector 600. The portion 605 of the impact case 35includes a recess 610 (FIG. 22 ) in which the hammer detector 600 isreceived such that the hammer detector 600 forms a flushed (or nearlyflushed) surface with the impact case 35. The gear case 78 includes aslot 604. As shown in FIG. 21D, the hammer detector 600 fits within therecess 610 and the slot 604 such that the hammer detector 600 does notinterfere with movement of the hammer 375.

FIGS. 21A-D illustrate the hammer detector 600 integrated into theimpact case 35 of the power tool 10 and positioned radially outward ofthe hammer 375. The hammer detector 600 includes a sensing inductivesensor 615 and a reference inductive sensor 620, and a voltage dividernetwork (not shown). The sensing inductive sensor 615 is positionedtoward the front of the impact mechanism 300 such that when the hammer375 moves backward in its rebounding action (i.e., leftward in FIGS.21A-D), the hammer 375 moves into a sensing range of the sensinginductive sensor 615 and changes the output from the sensing inductivesensor 615. The reference inductive sensor 620, on the other hand, ispositioned toward the back of the impact mechanism 300 such that evenwhen the hammer 375 is rebounding, the hammer 375 remains too far (e.g.,too distant) from the reference inductive sensor 620 to affect itsoutput, or, at least, the effect on the output of the referenceinductive coil 620 is noticeably less than that of the sensor inductivecoil 615.

As described above with respect to the hammer detector 500, the hammerdetector 600 of FIGS. 21 and 22 also generates a binary output signalthat in a first state indicates that the hammer 375 is impacting theanvil 370, and in a second state indicates that the hammer 375 is notimpacting the anvil 370. The voltage divider network and the relativelyunchanging output from the reference inductive sensor 620 provide athreshold for the sensing inductive sensor 615, as described above withrespect to FIGS. 18-20 . As noted, in some embodiments, the controller135 refers to both the controller 135 controlling, for example, themotor 15, and the voltage divider network that helps in determining whenthe hammer 375 impacts the anvil 370. The operation of the hammerdetector 600 is similar to that described with respect to the hammerdetector 500 of FIGS. 18-20 , therefore no further details on theoperation and outputs of the hammer detector 600 are provided forconciseness.

FIG. 23 illustrates another embodiment of a hammer detector 640 (e.g.,sensor assembly). The hammer detector 640 is positioned radially outwardfrom the outer periphery of the hammer 375 and in front of thetransmission 77 and within the impact case 35, similar to the hammerdetector 600. Like the hammer detector 600 of FIGS. 21-22 , the hammerdetector 640 of FIG. 23 is aligned with the portion 605 of the impactcase 35 that covers the hammer 375 and the hammer detector 640. That is,the hammer detector 640 may replace the hammer detector 600 of FIGS.21-22 . The hammer detector 640, however, includes one inductive sensor645 instead of the two inductive sensors included in the hammer detector600 of FIGS. 21-22 . In other words, the hammer detector 640 does notinclude a reference inductive sensor such as the reference inductivesensor 615. In the illustrated embodiment, the inductive sensor 645 ofthe hammer detector 640 includes a circular inductive sensor 645 thatgenerates an output according to the distance between the inductivesensor 645 and the hammer 375. Because the hammer 375 oscillates betweendistancing itself from the anvil 370 and impacting the anvil 370, theinductive sensor 645 generates a sine waveform output, in which thepeaks (i.e., maximums or minimums of the wave) represent the hammer 375impacting the anvil 370. The sine waveform output is received by thecontroller 135. The controller 135 then implements a peak detector todetermine when or if the hammer 375 impacts the anvil 370. As mentionedabove with respect to the hammer detectors 500 and 600, the controller135 may refer to both circuitry and software included on the circuitboard that implements motor control and to circuitry and softwareincluded on the hammer detector 640 (e.g., on the circuit board ontowhich the inductive sensor 645 is mounted). In embodiments in which partof the processing is positioned on the hammer detector 640, the hammerdetector 640 may generate a binary output signal that indicates whetherthe hammer 375 is impacting the anvil 370 or not. The hammer detector640 generates a high output signal indicative that the hammer 375 isimpacting the anvil 370, and generates a low output signal indicativethat the hammer 375 is not impacting the anvil 370.

In other embodiments, the inductive sensor 645 of the hammer detector640 includes an elongated inductive sensor in which a first end includesinductive coils that are more densely packed than the inductive coils onthe second, opposite end of the elongated inductive sensor. In otherwords, the elongated inductive sensors include inductive coils that areunevenly distributed along the sensor 645. Such an elongated inductivesensor generates an analog signal rather than the binary output signalgenerated by the circular inductive sensor. For example, the elongatedinductive sensor may generate as its output signal a sawtooth waveformin which the rising wave may be indicative of the nearing hammer 375,the drop to zero of the sawtooth waveform may be indicative of therebounding of the hammer 375 away from the anvil 370. Regardless ofwhether the hammer detector 640 of FIG. 23 includes a circular inductivesensor or an elongated inductive sensor, the operation of the hammerdetector 640 is similar to that described with respect to hammerdetector 600 and hammer detector 500 of FIGS. 18-20 , therefore nofurther details on the operation and outputs of the hammer detector 640are provided for conciseness.

FIG. 24 illustrates another embodiment of a hammer detector 660 (e.g.,sensor assembly). The hammer detector 660 is positioned, with respect tothe impact mechanism 300, similar to the output position sensor 305shown in FIGS. 13 and 14 and similar to the hammer detector 500 of FIGS.18-20 . In other words, the hammer detector 660 is positioned on anannular structure 675 (e.g., annular PCB) that is positionedcircumferentially around the anvil 370. As shown in FIG. 24 , the hammerdetector 660 is positioned in front (e.g., on a side of an output unit,rather than a side of the motor of the power tool 10) of the impactmechanism 300. More specifically, the hammer detector 660 is positionedbetween the engagement structure 385 and the impact case 35 (FIG. 14 ),and is housed by the impact case 35. Additionally, description of thecomponents of the impact mechanism 300 is omitted for conciseness.

As shown in FIG. 24 , the hammer detector 660 includes one inductivecoil 665 instead of including a sense coil and a reference inductivecoil. Nevertheless, the hammer detector 660 is positioned on adonut-shaped (e.g., annular) printed circuit board (PCB) 675. The outputof the sense inductive coil 665 changes when the hammer 375 axiallyapproaches the hammer detector 660 to impact the anvil 370. When thehammer 375 is farther than a predetermined distance from the anvil 370(e.g., not impacting the anvil 370), the inductive coil 665 does notgenerate an output signal, or generates a low output signal. Therefore,the output from the sense inductive coil 665 changes based on how closethe hammer 375 is to the hammer detector 660. The operation of thehammer detector 660 is similar to that described with respect to thehammer detector 500 of FIGS. 18-20 , therefore no further details on theoperation and outputs of the hammer detector 660 are provided forconciseness.

Although the hammer detectors 405 d, 500, 600, 640, and 660 have beendescribed as operating in conjunction with anvil position sensors aspart of the output position sensor (or sensor assembly), in someembodiments, the hammer detectors 405 d, 500, 600, 640, 660 are includedin the output position sensor (e.g., in the sensor assembly) withoutalso including any anvil position sensors. Accordingly, in someembodiments, the sensor assembly or output position sensor may includeonly one of the hammer detectors 405 d, 500, 600, 640, 660 and may notprovide sensors to directly measure a position of the anvil.

FIG. 25-26 illustrate another embodiment of an output position sensor700. The output position sensor 700 is positioned, with respect to theimpact mechanism 300, similar to the output position sensor 305 shown inFIGS. 14 and 15 . In other words, the output position sensor 700 of FIG.25 replaces the output position sensor 305 within the impact mechanism300. The output position sensor 700 is positioned in front of thetransmission 77 of the power tool 10 and is positioned on an annularstructure (e.g., an annular PCB) circumferentially around the anvil 370,and is housed within the impact case 35. Therefore, the impact mechanism300 and the placement of the output position sensor 700 are not shown.Additionally, description for the components of the impact mechanism 300and the placement of the output position sensor 700 with respect to theimpact mechanism 300 is omitted for conciseness.

The output position sensor 700 of FIG. 25 includes a first inductivecoil 705, a second inductive coil 710, a third inductive coil 715, and afourth inductive coil 720. When using the output position sensor 700, ametal marker 725 is coupled to the anvil 370 to allow the inductivecoils 705-720 to differentiate between different positions of the anvil370. FIG. 26 illustrates a schematic diagram of the metal marker 725overlaid on the output position sensor 700. The anvil 370 is not shownin FIG. 26 , but the metal marker 725 is added to (e.g., secured to) theanvil 370 on a side closest to the output position sensor (e.g., towardthe front of the impact mechanism 300). In other words, the metal marker725 is positioned between the anvil 370 and the output position sensor700. As shown in FIG. 26 , the metal marker 725 is a non-uniform shapedmetal marker 725 such that each inductive coil 705-720 generates adifferent output signal based on the rotational position of the metalmarker 725 (which is indicative of the rotational position of the anvil370). In the illustrated embodiment, the metal marker 725 has a lune orcrescent shape. In other embodiments, however, other types ofnon-uniform shapes may be used for the metal marker 725. For example,the metal marker 725 may have a gear tooth design. In such embodiments,a relative position of the anvil 370 may be determined instead of anabsolute position of the anvil 370. The inductive coils 705-720 areconfigured to generate an output signal according to what portion of themetal marker 725 is closest (e.g., directly above) the inductive coil705-720.

The first, second, third, and fourth inductive coils 705-720 send theircorresponding output signals to the controller 135. The controller 135analyzes the output signals from the inductive coils 705-720 anddetermines, based on the output signals, an absolute position of theanvil 370. The first, second, third, and fourth inductive coils 705-720may also be referred to as anvil sensors, or anvil position sensors. Thecontroller 135 may designate point A (FIG. 26 ) as a reference point ofthe metal marker 725 such that the controller 135 determines the anvil370 is at a zero position when point A is directly above the fourthinductive coil 720 (e.g., as shown in FIG. 26 ). The controller 135 maythen determine the rotational position (e.g., angular position) of theanvil 370 based on the approximate location of the reference point A.The controller 135 may also determine the rotational position of theanvil 370 by comparing the output signals from oppositely positionedinductive coils. For example, the controller 135 may compare the outputof the first inductive coil 705 with the output of the third inductivecoil 715 (e.g., the inductive coil positioned opposite the firstinductive coil 705), and may compare the output of the second inductivecoil 710 with the output of the fourth inductive coil 720. Two of theinductive coils (e.g., the first inductive coil 705 and the thirdinductive coil 715 in FIG. 26 ) are expected to have approximately equaloutput signals since the metal marker 725 has a similar shape over bothof the inductive coils. The remaining two inductive coils (e.g., thesecond inductive coil 710 and the fourth inductive coil 720 in FIG. 26 )are expected to have different output signals since the metal marker 725has a different shape over the second inductive coil 710 than over thefourth inductive coil 720. For example, with reference to FIG. 26 , thefurther inductive coil 720 may have a higher (e.g., near maximum) outputthan the inductive coils 705, 710, and 715, and the second inductivecoil 710 may have a lower (e.g., near minimum) output than the inductivecoils 705, 715, and 720. Based on the mapping of the two approximatelyequal outputs and the approximately opposite outputs from the inductivecoils 705-720, the controller 135 determines the absolute position ofthe anvil 370.

In some embodiments, the controller 135 accesses a look-up table from amemory of the power tool to determine the absolute position of the anvil370. The look up table indicates, for example, approximate positions forthe anvil 370 with the corresponding readings of each of the inductivecoils 705-720. In other embodiments, the controller 135 performs aspecific calculation (e.g., based on a stored equation) that allows thecontroller 135 to determine the rotational position of the anvil 370.

As explained above with respect to the output position sensor 305 shownin FIGS. 14-15 , once the controller 135 determines the position of theanvil 370 using the output position sensor 700 shown in FIGS. 25-26 ,the operation of the power tool 10 as described by FIGS. 3-12 remainssimilar. In particular, the output position sensor 700 replaces theoutput positon sensor 130 described with respect to FIGS. 3-12 . Theanvil position sensors 130, 305, 405, and 700 all provide directmeasurements of the positon and/or movement of the anvil 70, 370. Thehammer detectors 405 d, 500, 600, 640, 660 provide direct measurementsof the position of the hammer 375 with respect to the anvil 370.Therefore, the methods described with respect to FIGS. 4-12 remainsimilar, except the information regarding the positon of the anvil 70,370 is gathered from the output position sensor 700 shown in FIG. 25 ,rather than the output position sensor 130 shown in FIG. 2 or the outputposition sensor 305 shown in FIGS. 14-15 .

FIGS. 27-28 illustrate another embodiment of an output position sensor800. The output position sensor 800 includes a magnetic sensor 805positioned on a donut-shaped (e.g., annular) PCB 810. The donut PCB 810is positioned with respect to the impact mechanism 300, similar to theoutput position sensor 305 shown in FIGS. 14 and 15 . In other words,the magnetic sensor 805 of FIGS. 27-28 replaces the output positionsensor 305 within the impact mechanism 300. That is, the output positionsensor 800 is positioned in front of the transmission 77 of the powertool 10, and is positioned on an annular structure (e.g., annular PCB810) that is circumferentially around the anvil 370, and is housedwithin the impact case 35. Therefore, the impact mechanism 300 and theplacement of the magnetic sensor 805 are not shown. Additionally,description for the components of the impact mechanism 300 and theplacement of the magnetic sensor 805 with respect to the impactmechanism 300 is omitted for conciseness. The magnetic sensor 805 mayinclude, for example, a Hall-Effect sensor, a magnetoresistive sensor,or another sensor configured to detect a magnetic vector.

The output position sensor 800 also includes a magnetic ring 815 that iscoupled to the anvil 370 and positioned in front of (e.g., toward thefront of the impact mechanism 300) the protrusions 390 a, 390 b of theanvil 370. As shown in FIG. 28 , the magnetic ring 815 is a donut shapedmagnet that is divided into four quadrants (i.e., a first quadrant 820,a second quadrant 825, a third quadrant 830, and a fourth quadrant 835).Each quadrant 820-835 includes a north pole magnet and a south polemagnet positioned circumferentially relative to each other. In theillustrated embodiment, the first quadrant 820 and the third quadrant830 include the north pole magnet positioned circumferentially inward(e.g., radially inward) of the south pole magnet. Therefore, the firstquadrant 820 and the third quadrant 830 generate magnetic flux linesdirected toward the center of the magnetic ring 815. In contrast, thesecond quadrant 825 and the fourth quadrant 835 include the north polemagnet positioned circumferentially outside (e.g., radially outward) ofthe south pole magnet. Therefore, the second quadrant 825 and the fourthquadrant 835 generate magnetic flux lines directed away from the centerof the magnetic ring 815. In other embodiments, however, the firstquadrant and third quadrant may generate magnetic flux lines directedaway from the center of the magnetic ring 815 and the second quadrantand fourth quadrant may generate magnetic flux lines directed toward thecenter of the magnetic ring 815.

The magnetic sensor 805 detects a magnetic vector based on position ofthe magnetic sensor 805 with respect to the magnetic ring 815. Themagnetic sensor 805 then generates an output signal indicative of thesensed magnetic vector to the controller 135. The controller 135determines, based on the sensed magnetic vector from the magnetic sensor805, the rotational position of the anvil 370. The magnetic sensor 805and the magnetic ring 815 may be referred to as an anvil sensor or ananvil position sensor. Although the output position sensor 800 isdescribed as including a magnetic ring 815, in some embodiments, themagnetic ring 815 may be replaced by a supporting ring on which multiplemagnets are mounted that also generate magnetic flux lines of oppositepolarities. In such embodiments, the magnetic sensor 805 still detects adifferent magnetic vector based on the position of the magnetic sensor805 with respect to the plurality of magnets. Additionally, in someembodiments, the magnetic ring 815 includes more than four quadrants, oranother arrangement to generate differing magnetic fields at differentcircumferential locations.

As explained above with respect to the output position sensor 305 shownin FIGS. 14-15 , once the controller 135 determines the position of theanvil 370 using the output position sensor 800 shown in FIG. 27 , theoperation of the power tool 10 as described by FIGS. 3-12 remainssimilar. In particular, the output position sensor 800 replaces theoutput positon sensor 130 described with respect to FIGS. 3-12 . Theoutput position sensors 130, 305, 405, 700, and 800 all provide directmeasurements of the positon and/or movement of the anvil 70, 370.Therefore, the methods described with respect to FIGS. 4-12 remainsimilar, except the information regarding the positon of the anvil 70,370 is gathered from the output position sensor 800 shown in FIG. 27 ,rather than the output position sensor 130 shown in FIG. 2 or the outputposition sensor 305 shown in FIGS. 14-15 .

Notably, any of the hammer detectors 405 d, 500, 600, 640, or 660 asdescribed with respect to FIGS. 16, 18, 21, 23, and 24 respectively, maybe incorporated into the output position sensors 130, 305, 405, 700, or800 as described with respect to FIGS. 2, 15, 25, and 27 , respectively.The hammer detectors 405 d, 500, 600, 640, 660 may alternatively beincorporated into the power tool 10 without, or separately from, theanvil position sensors included as part of the output position sensors130, 305, 405, 700, or 800. Additionally, some of the methods describedabove may be performed by the hammer detectors 405 d, 500, 600, 640, or660 without the need for the anvil position sensors 130, 305, 405, 700,800. For example, the method of FIG. 4 may be implemented using one ofthe hammer detectors 405 d, 500, 600, 640, or 660 without an anvilposition sensor. In such embodiments, the controller 135 may not need todetermine whether the change in anvil position is greater than aposition threshold (step 155). Rather, since the hammer detectors 405 d,500, 600, 640, 660 detect when an impact is occurring, the impactcounter would be incremented based on the outputs from one of the hammerdetectors 405 d, 500, 600, 640, 660 without comparing the output signalsto a position threshold. Additionally, it is to be noted that while theoutput position sensors 130, 305, 405, 700, or 800 are describedseemingly as a single sensor, these output position sensors mayalternatively be considered sensor assemblies including one or moresensors. Similarly, the hammer detectors 405 d, 500, 600, 640, 660,whether coupled to anvil position sensors or provided independently, mayalso be considered sensor assemblies including one or more sensors. Inother words, a sensor assembly may include the anvil position sensorsdescribed within output position sensors 130, 305, 405, 700, and 800,hammer detectors 405 d, 500, 600, 640, 660, or a combination of anvilposition sensors and hammer detectors. The anvil position sensorsincluded in the output position sensors 130, 305, 405, 700, and 800detect a position of the anvil 370 independently of detecting theposition of the motor 15 as determined by the Hall sensors 125. In otherwords, the anvil position sensors directly detect an anvil positionseparate from a detection of a motor position.

FIG. 29 is a flowchart illustrating a method 900 of operating the powertool 10 according to a time-to-shutdown mode. The controller 135 mayimplement the method 900 using any one of the output position sensors130, 305, 405, 700, 800, the hammer detectors 405 d, 500, 600, or acombination thereof. A graphical user interface (e.g., similar to thatshown in FIG. 10 ) may receive from a user a target time after the firstimpact. During the time-to-shutdown mode, the controller 135 drives themotor 15 according to the selected mode and detected trigger pull (step905). The controller 135 then determines, based on the output signals ofthe output position sensors 130, 305, 405, 700, 800 and/or the hammerdetectors 405 d, 500, 600, when a first impact occurs (step 910). Inresponse to detecting the first impact, the controller 135 initiates atimer (step 915). The value of the timer may be determined based on, forexample, a user input indicating how long the power tool 10 is tocontinue operating (e.g., driving the motor 15) after the first impact.For applications in which a workpiece or fastener is more fragile, thetimer may have a smaller value to inhibit the tool from damaging theworkpiece or fastener. The controller 135 then determines whether thetimer has expired (step 920). When the controller 135 determines thatthe timer has not yet expired, the controller 135 continues operation ofthe motor 15 according to the selected mode and detected trigger pull(step 925). On the other hand, when the controller 135 determines thatthe timer has expired, the controller 135 changes the motor operation(step 930), as discussed above with respect to, for example, step 170 ofFIG. 4 . The controller 135 then also resets the timer (step 935).

FIG. 30 is a flowchart illustrating a method 1000 of operating the powertool 10 according to a minimum angle mode. The controller 135 mayimplement the method 1000 using any one of the output position sensors130, 305, 405, 700, 800, or another output position sensor capable ofgenerating an output signal indicative of the angular displacement ofthe anvil 370 after each impact is delivered. The controller 135 mayimplement the method 1000 also using the hammer detectors 405 d, 500,600 to help determine when each impact occurs. During the minimum anglemode, the controller 135 drives the motor 15 according to the selectedmode and detected trigger pull (step 1005). The controller 135 thendetermines a rotational angle per impact for the power tool (step 1015).

In one embodiment, the rotational angle per impact refers to arotational displacement of the anvil per impact. In such embodiments,the controller 135 may use, for example, the output position sensors130, 305, 405 700, 800 to determine a first rotational position of theanvil 370 before an impact, determine a second rotational position ofthe anvil 370 after the impact, and the controller 135 may thendetermine a difference between the first rotational position and thesecond rotational position to determine a rotational displacement of theanvil 370. In other embodiments, the rotational angle per impact refersto a rotational angle of the motor 15 per impact. In such embodiments,the controller 135 may use, for example, motor position sensors (e.g.,the Hall effect sensors 125) positioned near the motor 15 to determinethe angular displacement of the motor 15 between each impact. Thecontroller 135 may, for example, detect a first impact, and then trackthe rotational displacement of the motor 15 until a second impact isdetected (e.g., using the hammer detectors 405 d, 500, 600).

The controller 135 then determines whether the rotational angle perimpact is below a predetermined threshold (step 1020). When thecontroller 135 determines that the rotational angle per impact remainsabove the predetermined threshold, the controller 135 continues tooperate the motor 15 at the selected mode and detected trigger pull(step 1005). On the other hand, when the controller 135 determines thatthe rotational angle per impact is below the predetermined threshold,the controller 135 changes motor operation as discussed (step 1025), asdiscussed above with respect to step 170 of FIG. 4 . For example, thecontroller 135 shuts down the motor 15. The minimum angle mode allowsthe motor 15 to become deactivated after a predetermined torque isreached. As the torque increases, generally, the angular displacement ofthe motor 15 and/or the anvil 370 decreases per impact. Therefore,changing the motor operation based on the rotational angle per impactprovides an indirect manner of controlling the motor 15 based ondelivered torque.

FIG. 31 is a flowchart illustrating a method 1100 of operating the powertool 10 according to a yield control mode. The yield control mode is setto detect when a fastener (e.g., a bolt) has been damaged due toyielding of the fastener, which may be used to determine to ceasedriving to and prevent damaging the workpiece also. When a fastener isnot damaged due to yielding, generally, the rotational angle per impactdecreases as the torque increases over the course of driving thefastener. However, when a fastener has been damaged due to yielding, therotational angle per impact ceases decreasing (and the torque ceasesincreasing) because the damaged fastener provides less resistance to thepower tool. In other words, the rotational angle per impact and thetorque may remain the unchanged.

During the yield control mode, the controller 135 operates the motor 15according to the selected mode and detected trigger pulls (step 1105).The controller 135 then determines that an impact has occurred (step1110). The controller 135 may determine that an impact occurred asdescribed above with respect to step 150 of FIG. 4 ; based on a changein acceleration or speed of the motor 15 (e.g., based on output from theHall sensors 125); based on output from one of the hammer detectors 405d, 500, 600, 640, or 660; or based on a change in acceleration or speedof the anvil 70 (e.g., using one of the output position sensors 130,305, 405, 700, 800 described herein). Upon detecting an impact, thecontroller 135 initiates a timer (step 1115). The controller 135 thendetermines whether the timer has expired (step 1120). When thecontroller 135 determines that the timer has not yet expired, thecontroller 135 continues to operate the power tool 10 according to theselected mode and detected trigger pull.

When the controller 135 determines that the timer has expired, thecontroller 135 then determines the rotational angle per impact (step1125). The controller 135 may determine the rotational angle per impactas described above with respect to step 1015 of FIG. 30 . The controller135 then determines whether the rotational angle per impact is above ayield threshold (step 1130). The timer and yield threshold may beselected in advance using, for example, experimental values based on thetype of fastener, the type of workpiece, or a combination thereof. Whenthe controller 135 determines that the rotational angle per impact isabove the yield threshold, the controller 135 stops operation of themotor 15 (step 1135). When the rotational angle per impact is above theyield threshold after the timer has expired, the controller 135 infersthat the fastener has yielded because it is not providing resistance ata level expected at the post-timer expiration stage of driving of thefastener. When the rotational angle per impact is below the yieldthreshold, the controller 135 returns to step 1125 to determine therotational angle of the next impact. The steps 125 and 130 are repeated,for example, until the user releases the trigger to stop the motor 15,the fastener is determined to have yielded, or another motor controltechnique is used (e.g., stopping the motor 15 after a predeterminednumber of impacts are determined to have occurred).

In some embodiments, the controller 135 determines that a fastener isdamaged by measuring the torque output (e.g., via a torque sensor). Insuch embodiments, after the timer has expired (step 1120), thecontroller 135 measures the torque output. When the torque output isbelow a torque yield threshold, the controller 135 infers that thefastener has yielded (e.g., because torque is no longer increasing). Onthe other hand, when the torque output is above the torque yieldthreshold, the controller 135 continues to operate the motor 15, andmeasures the torque periodically during impacting.

FIG. 32 is a flowchart illustrating a method 1200 of operating the powertool 10 according to a closed-loop speed control mode. Under theclosed-loop speed control mode, the controller 135 maintains therotating speed of the motor 15 at a desired value such that the hammer375 impacts the anvil 370 at the desired speed. By controlling the speedof the motor, the anvil 370 can deliver a repeatable torque level to afastener. During the closed-loop speed control, the controller 135receives a user specified torque level (step 1205). The controller 135may receive the torque level through a graphical user interface similarto that shown in FIG. 10 . For example, the controller 135 may receivean indication that a torque of 920 ft·lb is desired. The controller 135then determines a corresponding motor speed for the desired torque (step1210). In other words, to deliver the desired torque, the hammer 375 isdriven by the motor 15 to impact the anvil 370 at a particular speed.The controller 135, for example, using a look up table populated basedon experimental values, determines the desired speed at which the hammer375 is driven to hit the anvil 370 to output the desired torque level.

The controller 135 then operates the motor 15 in a closed-loop system atthe desired speed (step 1215). In some embodiments, the controller 135implements a PID loop to maintain the motor 15 at the desired speed. Thecontroller 135 uses the Hall Effect sensors 125 to periodically measurethe speed of the motor 15. In other embodiments, other methods ofimplementing a closed-loop system may be used. The controller 135,during its closed loop control of the motor speed, makes necessaryadjustments to compensate for, for example, decreasing battery voltage,decreasing grease level, and the like. The controller 135 may operate inthe closed-loop speed control mode as part of the other modes describedfor the power tool. For example, while operating in the closed-loopspeed control, the controller 135 may control the motor 15 such that aspecific number of impacts are to be delivered to the anvil 370 asdescribed, for example, in FIG. 4 . In another example, while operatingin the closed-loop speed control mode, the controller 135 may controlthe motor 15 such that a total angle after the first impact is desiredas described, for example, in FIG. 9 .

In other embodiments, the controller 135 may instead receive a desiredmotor speed (e.g., using a graphical user interface similar to thatshown in FIG. 8 ). In such embodiments, the controller 135 does notdetermine a motor speed that corresponds to the desired torque, butrather operates the motor 15 at the desired speed under the closed-loopcontrol mode.

FIG. 33 illustrates a method 1300 of operating the power tool 10according to a torque control mode in which a user specifies a torquelevel, and the controller 135 operates the motor 15 at a constant speedsuch that a consistent torque is output by the anvil 370. FIGS. 34-35illustrate exemplary screenshots of a graphical user interface 1350generated by the external device 147 through which a user may enable andspecify parameters for the torque control mode. The interface 1350 ofFIGS. 34-35 includes a maximum speed selector 1355, a bolt removalselector 1360, and a torque mode selector 1365. In the illustratedembodiment, the maximum speed selector 1355 includes a slider 1370 and alabel 1375 that indicates a number corresponding to the position of theslider 1370. The external device 147 receives a selection from a user ofa desired maximum speed for a tool operation through the maximum speedselector 1355. The torque control selector 1365 includes a switch thatenables or disables the torque control mode. The external device 147determines whether the torque control mode is enabled based on theposition of the switch of the torque control selector 1365. The boltremoval selector 1360 also includes a switch that enables or disables abolt removal mode further explained with respect to FIG. 38 .

FIG. 35 illustrates the graphical user interface 1350 when both the boltremoval mode and the torque control mode are enabled. As shown in FIG.35 , when the bolt removal mode is enabled, the graphical user interface1350 also includes a removal speed selector 1380. Similarly, when thetorque control mode is enabled, the graphical user interface 1350 alsoincludes a torque level selector 1385. A selected torque level may beindicative of, for example, a predetermined number of impacts deliveredto the anvil 370. In other embodiments, a desired torque level may beindicative of a total applied torque at the workpiece (e.g., 92 ft·lbs).After the external device 147 receives the user selections via thegraphical user interface 1350, the external device 147 transmits themode profile to the power tool 10. As mentioned above, the power tool 10receives the mode profile and stores the mode profile in a memory of thepower tool 10 (e.g., a memory of the controller 135 and/or a separatememory). The power tool 10 (e.g., the controller 135) then receives aselection of an operational mode for the power tool 10 (e.g., via themode select button 45), accesses the stored mode profile correspondingto the selected mode, and operates the power tool 10 according to theselected operational mode.

As shown in the flowchart of FIG. 33 , the controller 135 receives aselection of the torque control mode for operation of the power tool 10(step 1305). The selection may be received at the controller through,for example, the mode select button 45. The controller 135 may thenaccess the maximum speed (step 1310) and access the desired torque level(step 1315) associated with the torque control mode. As mentioned above,the desired torque level may be indicative of a particular number ofimpacts to be delivered by the anvil 370 or may be indicative of adesired force to be imparted by the anvil 370. The controller 135 thenproceeds to operate the motor 15 according to the depression of thetrigger 55 (step 1320) such that the selected maximum speed of the powertool 10 is achieved when the trigger 55 is fully depressed (e.g., themotor 15 is controlled through variable bounded PWM signals). During theoperation of the motor 15, the controller 135 monitors whether impactingof the anvil 370 has started (step 1325). As described above, thecontroller 135 may use different methods to detect when the hammer 375has begun to impact the anvil 370. For example, the controller 135 maymonitor the motor current and detect a change in the motor current whenthe hammer 375 begins impacting the anvil 370. Additionally oralternatively, the controller 135 may monitor the output signals fromthe output position sensor(s) described above to determine whetherimpacting of the anvil 370 has begun.

When the controller 135 determines that impacting has not yet started,the controller 135 continues to operate the motor 15 based on thedepression of the trigger 55 and the selected maximum speed. Otherwise,when the controller 135 determines that impacting of the anvil 370 hasstarted, the controller 135 stops operating the motor 15 according tothe depression of the trigger 55 and instead, operates the motor 15according to an adaptive pulse width modulation (PWM) speed control(step 1330). The controller 135 continues to operate the motor 15according to the adaptive PWM speed control and monitors whether thedesired torque level has been achieved (step 1335). For embodiments inwhich the desired torque level indicates a desired number of impacts tothe anvil 370, the controller 135 monitors the output signals from theoutput position sensors and/or the hammer detectors described above todetermine when the number of impacts delivered to the anvil 370 equalthe desired number of impacts. In other embodiments, for example, when atotal delivered torque applied is selected as the desired torque level,the controller 135 may monitor, for example, the time during whichimpacts are delivered to the anvil 370 as an approximate measure of thetotal torque applied, and/or may monitor a specific torque sensorpositioned at the nose of the power tool 10. When the controller 135determines that the desired torque level has not yet been reached, thecontroller 135 continues to operate the motor 15 according to theadaptive PWM speed control (step 1330). On the other hand, when thecontroller 135 determines that the desired torque level is reached, thecontroller proceeds to change operation of the motor 15 (step 1340). Forexample, the controller 135 may change the direction of driving thepower tool 10, may stop operation of the motor 15, and/or may change aspeed of the motor 15.

FIG. 36 illustrates a method 1400 for operating the power tool 10according to the adaptive PWM speed control mode. In the adaptive PWMspeed control mode, the controller 135 maintains the rotating speed ofthe motor 15 at a desired value such that the hammer 375 impacts theanvil 370 at a constant desired speed. By controlling the speed of themotor, the anvil 370 can deliver a repeatable torque level to afastener. During the adaptive PWM speed control mode, the controller 135determines a desired motor speed (step 1405). The desired motor speedmay correlate to a speed selected by a user (e.g., the maximum speedselected by a user via, for example, the graphical user interface 1350).In some embodiments, the desired motor speed may be calculated by thecontroller 135 based on, for example, a desired torque level. Thecontroller 135, for example, using a look up table populated based onexperimental values, determines the desired motor speed to output thedesired torque level. In yet other embodiments, the desired motor speedmay be calculated by the controller 135 based on an input from the userregarding the desired speed. For example, with reference to FIGS. 33-35, the controller 135 may calculate a desired speed for the adaptive PWMspeed control based on the maximum speed selected by the user (e.g., andreceived at the controller 135). In one example, the desired speedcorresponds to approximately between 70-75% of the maximum speedselected by the user.

After the controller 135 determines the desired motor speed, thecontroller 135 measures the battery voltage (e.g., the current state ofcharge of the power source 115 attached to the power tool 10) at step1410. The controller 135 may use a voltage or current sensor todetermine the state of charge of the battery pack attached to the powertool 10. The controller 135 then calculates a PWM duty ratio to drivethe motor 15 to achieve the desired speed and based on the batteryvoltage (step 1415). The controller 135 then drives the motor 15 withthe calculated PWM duty ratio to achieve the desired speed (step 1420).When the controller 135 loops back to step 1418 based on evaluating atstep 1335 (see FIG. 33 ), the controller 135 measures the batteryvoltage again and calculates a new PWM duty cycle based on the mostrecent measured battery voltage and the desired speed. Periodicallyre-measuring the battery voltage and re-calculating a PWM duty cycle toachieve the desired speed allows the controller 135 to change the PWMduty cycle such that the desired speed of the motor 15 is achieved. Forexample, to achieve a desired motor speed, the controller 135 maydetermine a first PWM duty ratio when the battery voltage indicates afully charged battery, and a second, higher PWM duty ratio when thebattery voltage is lower than that for a fully charged battery. In otherwords, as the battery voltage decreases, the controller 135 increasesthe PWM duty ratio to compensate for the decrease in battery voltage.Through this compensation, a similar amount of voltage to the motor 15is supplied despite a reduction of the state of charge of the battery.

In some embodiments, calculation of the PWM duty cycle includesdetermining a ratio of the full state of charge of the battery pack tothe current state of charge of the battery pack. For example, a 12Vbattery pack may yield a ratio of 1.02 when the battery voltage drops toapproximately 11.8V. The battery pack voltage ratio may then be used toadapt the PWM duty cycle to compensate for the gradual decrease inbattery voltage. For example, a PWM duty ratio of 70% when the 12Vbattery pack is fully charged may be sufficient to deliver the desiredspeed. However, a PWM duty ratio of approximately 71.4% (e.g., theproduct of 70% and 1.02) may be used when the battery pack drops toapproximately 11.8V such that the same overall motor voltage isdelivered and a similar speed achieved.

Although FIG. 36 has been described with respect to adjusting thedetermined PWM duty ratio to compensate for the battery voltage, thecontroller 135 may additionally or alternatively monitor other factorsto adjust the PWM duty ratio. For example, the controller 135 maymonitor any one selected from a group consisting of battery impedance,joint type (e.g., indicated by a user via a touch screen similar to thatshown in FIG. 10 ), motor temperature (e.g., detected by a temperaturesensor coupled to the controller 135), and motor impedance, and anycombinations thereof. For example, as one of the additional factorschanges causing the motor speed to decrease, the controller 135 may, inresponse, increases the determined PWM duty ratio, to maintain thedesired motor speed. Additionally, although the adaptive PWM speedcontrol is described as compensating for a decrease in battery voltage,the controller 135 and/or the battery pack may still implement a lowvoltage threshold. In other words, when the state of charge of thebattery pack is below the low voltage threshold, the controller 135and/or the battery pack may cease to provide power to the motor 15 toprevent the battery pack from becoming over-discharged.

The controller 135 may operate in the PWM speed control mode as part ofthe other modes described for the power tool, not just as part of thetorque control mode described with respect to FIGS. 33-35 . For example,while operating in the closed-loop speed control, the controller 135 maycontrol the motor 15 such that a specific number of impacts are to bedelivered to the anvil 370 as described, for example, in FIG. 4 . Inanother example, while operating in the PWM speed control mode, thecontroller 135 may control the motor 15 such that a total angle afterthe first impact is desired as described, for example, in FIG. 9 .

For example, FIG. 37 illustrates another exemplary screenshot of agraphical user interface 1500 generated by the external device 147 forselecting parameters for a lug nut control mode. During operation, thelug nut control mode is similar to the torque control mode. Thespecification of parameters for the lug nut control mode, however, isbased on inputting specific characteristics of the lug nut rather thanspecifying a maximum speed. As shown in FIG. 37 , the graphical userinterface 1500 includes a lug size selector 1505 and a desired torqueselector 1510. The desired torque output may correspond to, for example,manufacturer specification for particular lug nuts. The external device147 receives an indication of a particular lug size and the desiredtorque output via the graphical user interface 1500, and determinesbased on the selected parameters a corresponding desired speed. In someembodiments, the external device 147 accesses a remote server todetermine the desired speed corresponding to the specified lug nut anddesired torque output. In some embodiments, the external device 147transmits the lug nut mode profile including the specified lug nut sizeand desired torque output and the power tool 10 (i.e., the controller135) determines the desired speed. As shown in FIG. 37 , the graphicaluser interface 1500 also includes a torque level selector 1515. Thetorque level selector 1515 indicates a desired number of impacts to bedelivered to the anvil 370. After the desired speed corresponding to theselected lug nut size and desired torque output is determined, thecontroller 135 operates the motor 15 according to the adaptive PWM speedcontrol (e.g., starting at step 1320) during operation of the lug nutcontrol mode, as described for example with respect to FIGS. 33 and 36 .

FIG. 38 illustrates a method 1600 of operating the power tool 10according to a differential impacting speed mode. The differentialimpacting speed mode allows the power tool 10 to operate the motor 15 ata first speed when the hammer 375 is not impacting the anvil 370 and asecond speed when the hammer 375 is impacting the anvil 370. As shown inFIG. 38 , the controller 135 first receives (or accesses) a firstdesired speed (step 1605) and receives (or accesses) a second desiredspeed (step 1610). The controller 135 may receive the first and seconddesired speeds from, for example, the external device 147 based on, forexample, a user input received through a graphical user interface. Thecontroller 135 then monitors the trigger 55 to determine whether thetrigger 55 is currently depressed (step 1615). When the trigger is notdepressed, the operation of the motor 15 is stopped (step 1620), and thecontroller 135 returns to step 1615 to determine whether the trigger 55is depressed. When the trigger is depressed, the controller 135determines whether the hammer 375 is impacting the anvil 370 (step1625).

The controller 135 may determine whether impacting is occurring basedon, for example, the motor current, the motor speed, the output signalsfrom the output positions sensors and/or the hammer detectors, or acombination thereof. When the controller 135 determines that the hammer375 is not impacting the anvil 370, the controller 135 operates themotor according to the first desired speed and an amount of depressionof the trigger 55 (step 1630). On the other hand, when the controller135 determines that the hammer 375 is impacting the anvil 370, thecontroller 135 operates the motor 15 according to the second desiredspeed and an amount of depression of the trigger 55 (step 1635). Forexample, when the trigger 55 is fully depressed, the controller 135operates the motor 15 at the first desired speed, and operates the motor15 slower when the trigger 55 is not fully depressed (e.g., at a rateproportional to the trigger depression). As the controller 135 operatesthe motor 15 according to either the first desired speed or the seconddesired speed, the controller 135 continues to monitor whether thetrigger 55 remains pulled at step 1615.

The bolt removal feature referred to earlier with respect to FIGS. 34and 35 is an example of the differential impacting speed mode.Typically, during removal of bolts, the power tool 10 begins impactingsoon after initiating the removal operation. As the bolt is removed andless force is required, the power tool 10 continues to drive the motor15, but stops impacting while the bolt is then fully removed. Therefore,with respect to the bolt removal mode as shown in FIG. 35 , the maximumspeed corresponds to the second desired speed described in FIG. 38 andis used when controlling the motor 15 while the hammer 375 is impactingthe anvil 370 and just beginning the bolt removal process. Conversely,the removal speed selected by the user through the graphical interface1350 corresponds to the first desired speed described in FIG. 38 and isused when controlling the motor 15 after the hammer 375 has stoppedimpacting the anvil 370. During operation of the bolt removal mode, thecontroller 135 operates the motor 15 according to the maximum speed atfirst until the bolt is sufficiently loose that the power tool 10 doesnot need to engage its impact mechanism 300 to remove the bolt. Then,the controller 135 operates the motor 15 according to the removal speeduntil the bolt is fully removed. When displaying the graphical userinterface 1350 of FIG. 35 to the user, the removal speed defaults toapproximately 50% of the maximum speed. By setting the removal speed tobe slower than the maximum speed, the bolt is inhibited from abruptlyreleasing from the surface. Instead, a more controlled bolt removal maybe performed.

Although the bolt removal mode described above operates the motor 15 ina reverse direction, in some embodiments, the differential impactingspeed mode may also be implemented when the power tool 10 operates in aforward direction. For example, when a bolt has a particularly longthreading, a higher speed may be used to begin fastening the bolt (e.g.,a first desired speed) while the hammer 375 is not yet impacting theanvil 370. However, once the bolt begins to penetrate more of the worksurface, impacting may begin and the controller 135 may decrease themotor speed (e.g., to a second desired speed) to generate a highertorque.

The power tool 10 may also operate in a concrete anchor mode. FIG. 39illustrates an exemplary graphical user interface 1700 generated by theexternal device 147 to receive user selection for various parameters ofthe concrete anchor mode. As shown in FIG. 39 , the graphical userinterface 1700 includes an anchor width selector 1705, an anchor lengthselector 1710, and an anchor material selector 1715. Severalcombinations of the anchor type, the anchor length, and the anchormaterial may be selected by the user via the selectors 1705, 1710, 1715.The graphical user interface 1700 also includes a maximum speed selector1720, and a finishing torque level selector 1725. The maximum speedselector 1720 allows a user to specify a desired maximum speed. Asdescribed above with respect to other torque selectors, the torque levelselector 1725 may select, for example, a desired number of impacts to bedelivered by the hammer 375 before operation is stopped.

FIG. 40 illustrates a method 1800 for operating the power tool 10 in theconcrete anchor mode. First, the controller 135 receives the parametersspecified via the graphical user interface 1700 (step 1805). Inparticular, the controller 135 receives a selected maximum speed and adesired finishing torque level. As discussed above, the maximum speedand/or the desired finishing torque level may be determined by thecontroller 135 or the external device 147 based on the characteristicsof the fastener and type of application as specified using the anchorwidth selector 1705, anchor length selector 1710, and the anchormaterial selector 1715. In other embodiments, the characteristics of thefastener and type of application are used to determine other parametersfor the operation of the power tool 10. The controller 135 then checkswhether the trigger 55 is depressed (step 1810). When the trigger 55 isnot depressed, the controller 135 continues to monitor the trigger 55without activating the motor 15 (step 1810). When the trigger 55 isdepressed, the controller 135 controls the motor 15 according to themaximum speed and the amount of depression of the trigger 55 (step1815). For example, when the trigger 55 is fully depressed, the maximumspeed is provided to the motor 15. However, when the trigger 55 is onlydepressed about 50%, the motor speed is also approximately 50% of themaximum speed.

The controller 135 then monitors the power tool 10 to determine whetherimpacting has started (step 1820). As discussed above, the controller135 may determine when impacting is occurring based on, for example,motor current, motor position, and/or anvil position. When the hammer375 is not yet impacting the anvil 370, the controller 135 continues tomonitor whether impacting has begun. On the other hand, when the hammer375 is impacting the anvil 370, the controller 135 switches the motoroperation to operate according to the adaptive PWM speed control untilthe desired torque level is reached (step 1825). Driving the motor 15with the adaptive PWM speed control allows for a constant torque outputto be delivered via the anvil 370 even despite decreasing batteryvoltage. The controller 135 then monitors, for example, the number ofimpacts from the hammer 375, to determine whether the desired finishingtorque level is reached (step 1830). Step 1830 may be similar to, forexample, step 1335 of FIG. 33 . When the desired torque level isreached, the controller 235 terminates the operation of the power tool10 (step 1835). Otherwise, the controller 135 continues to operate themotor 15 according to the adaptive PWM speed control. Accordingly, usingthe concrete anchor mode, a user may configure the power tool 10 tooperate based on specific characteristics of the anchor size and/ortype.

As discussed above with respect to FIG. 3 , the controller 135 receivesinputs from the motor position sensors 125 and determines, for example,based on the position of the motor 15 when to apply power to the motor15. In some embodiments, the controller 135 may change the currentconduction angle or an advance angle based on the position or speed ofthe motor 15. For example, above a certain speed, the controller 135 maychange the conduction angle to implement phase advance and, below thespeed, the controller 135 may return the previous conduction angle. Thecontroller 135 may also receive an indication of a desired speed via,for example, a graphical user interface generated by the external device147. Additionally, as described above for example in FIGS. 4, 5, 7, 9,11, 17, 29-32, 33, 38, and 40 , the controller 135 controls the motor 15based on the position and/or movement of the anvil 370. Furthermore, asdiscussed with respect to FIG. 36 , the controller 135 also compensatesfor the battery voltage and changes a duty cycle of the control signalto the motor 15 such that the average power delivered to the motor 15remains the same. Accordingly, the controller 135 is operable to controlthe motor 15 based on one or more of the position of the motor 15, thespeed of the motor 15, the position and/or movement of the anvil 370,the position and/or movement of the hammer 375, and the battery voltage.

Thus, the invention provides, among other things, a power tool includinga controller that controls a motor based on a direct measurement of theanvil position, the hammer position, or a combination thereof.

What is claimed is: 1.-20. (canceled)
 21. A power tool comprising: amotor including a rotor and a stator; an impact mechanism coupled to themotor, the impact mechanism including a hammer driven by the motor, andan anvil positioned at a nose of the power tool, the anvil configured toreceive an impact from the hammer; an impact case housing the anvil andthe hammer; a central axis about which at least one of the groupconsisting of the rotor, the hammer, the anvil, and combinations thereofis configured to rotate; a motor sensor board positioned perpendicularlywith respect to the central axis, the motor sensor board extending in aradial outward direction with respect to the central axis; a sensorassembly mounted to a top surface of a circuit board and located withina recess below a first plane located below the rotor, the first planeextending parallel to the central axis in a front-rear direction andhorizontally outward through sides of the power tool in a left-rightdirection, a second plane formed by the top surface of the circuit boardbeing parallel with the central axis and intersecting the motor sensorboard, the sensor assembly configured to generate an output signalindicative of the hammer impacting the anvil; and a controller includinga processor and a memory, the controller connected to the sensorassembly and to the motor, the controller configured to: receive theoutput signal from the sensor assembly, detect a number of impactsexecuted by the hammer based on the output signal from the sensorassembly, and control the motor based on the number of impacts executedby the hammer.
 22. The power tool of claim 21, wherein the sensorassembly is positioned in the radial outward direction between the rotorof the motor and a trigger.
 23. The power tool of claim 21, wherein thecontroller is configured to stop driving the motor after a predeterminednumber of impacts have been executed by the hammer.
 24. The power toolof claim 21, wherein the sensor assembly is located in front of themotor in the front-rear direction that is parallel to the central axis.25. The power tool of claim 21, wherein at least a portion of the sensorassembly is located below at least a portion of the hammer in the radialoutward direction.
 26. The power tool of claim 21, further comprising atransmission coupled between the motor and the impact mechanism, thetransmission positioned in front of the motor sensor board along thecentral axis and positioned above the sensor assembly in the radialoutward direction.
 27. The power tool of claim 21, wherein the powertool is powered by a rechargeable battery pack.
 28. The power tool ofclaim 21, wherein the controller is configured to control the motorbased on the number of impacts executed by the hammer by: receiving,from an external device, a type of fastener to be fastened by the powertool; controlling, based on the type of fastener, the motor based on thenumber of impacts executed by the hammer.
 29. The power tool of claim28, wherein the controller is configured to: determine that a desiredtorque output of the power tool has been reached based on the number ofimpacts executed by the hammer, wherein the desired torque output isbased at least partially on the type of fastener; and control the motorto stop operating in response to determining that the desired torqueoutput of the power tool has been reached.
 30. A power tool systemcomprising: a power tool including a motor including a rotor and astator, an impact mechanism coupled to the motor, the impact mechanismincluding a hammer driven by the motor, and an anvil positioned at anose of the power tool, the anvil configured to receive an impact fromthe hammer, an impact case housing the anvil and the hammer, a centralaxis about which at least one of the group consisting of the rotor, thehammer, the anvil, and combinations thereof is configured to rotate, amotor sensor board positioned perpendicularly with respect to thecentral axis, the motor sensor board extending in a radial outwarddirection with respect to the central axis, a sensor assembly mounted toa top surface of a circuit board and located within a recess below afirst plane located below the rotor, the first plane extending parallelto the central axis in a front-rear direction and horizontally outwardthrough sides of the power tool in a left-right direction, a secondplane formed by the top surface of the circuit board being parallel withthe central axis and intersecting the motor sensor board, the sensorassembly configured to generate an output signal indicative of thehammer impacting the anvil; and an external device configured tocommunicatively couple to the power tool; and a controller including aprocessor and a memory, the controller configured to: detect a number ofimpacts executed by the hammer based on the output signal from thesensor assembly, and control the motor based on the number of impactsexecuted by the hammer.
 31. The power tool system of claim 30, whereinthe power tool includes the controller.
 32. The power tool system ofclaim 30, wherein the external device is configured to communicativelycouple to the power tool via a wired interface.
 33. The power tool ofclaim 30, wherein the controller is configured to control the motorbased on the number of impacts executed by the hammer by: receiving,based on a user input received via a user interface of the externaldevice, a type of fastener to be fastened by the power tool;controlling, based on the type of fastener, the motor based on thenumber of impacts executed by the hammer.
 34. The power tool of claim33, wherein the controller is configured to: determine that a desiredtorque output of the power tool has been reached based on the number ofimpacts executed by the hammer, wherein the desired torque output isbased at least partially on the type of fastener; and control the motorto stop operating in response to determining that the desired torqueoutput of the power tool has been reached.
 35. The power tool of claim30, wherein the sensor assembly is positioned in the radial outwarddirection between the rotor of the motor and a trigger; and wherein themotor sensor board includes a Hall Effect sensor.
 36. A power toolsystem comprising: a power tool including a motor including a rotor anda stator, an impact mechanism coupled to the motor, the impact mechanismincluding a hammer driven by the motor, and an anvil positioned at anose of the power tool, the anvil configured to receive an impact fromthe hammer, an impact case housing the anvil and the hammer, a centralaxis about which at least one of the group consisting of the rotor, thehammer, the anvil, and combinations thereof is configured to rotate, amotor sensor board extending in a radial outward direction with respectto the central axis, a sensor assembly mounted to a top surface of acircuit board and located within a recess below a first plane locatedbelow the rotor, the first plane extending parallel to the central axisin a front-rear direction and horizontally outward through sides of thepower tool in a left-right direction, a second plane formed by the topsurface of the circuit board being parallel with the central axis andintersecting the motor sensor board, the sensor assembly configured togenerate an output signal indicative of the hammer impacting the anvil;and an external device configured to communicatively couple to the powertool, wherein the external device is configured to determine a type offastener to be fastened by the power tool; and a controller including aprocessor and a memory, the controller configured to: detect a number ofimpacts executed by the hammer based on the output signal from thesensor assembly, control, based on the type of fastener, the motor basedon the number of impacts executed by the hammer.
 37. The power toolsystem of claim 36, wherein the power tool includes the controller. 38.The power tool system of claim 36, wherein the external device isconfigured to communicatively couple to the power tool via a wiredinterface.
 39. The power tool system of claim 36, wherein the externaldevice includes a user interface, and wherein the external device isconfigured to determine the type of fastener by receiving a user input,via the user interface, that indicates the type of fastener.
 40. Thepower tool of claim 39, wherein the controller is configured to:determine that a desired torque output of the power tool has beenreached based on the number of impacts executed by the hammer, whereinthe desired torque output is based at least partially on the type offastener; and control the motor to stop operating in response todetermining that the desired torque output of the power tool has beenreached.